Mendownload AssetBundle dari server HTTP (GET)
Upload data mentah ke server HTTP (PUT)

Mengirimkan formulir ke server HTTP (POST)

Important: UNet adalah solusi yang diuraikan, dan Solusi Multiplayer baru dan NetworkingSistem Unity yang memungkinkan game multiplayer di jaringan komputer. More info
Lihat di Glossary
(Netcode untuk GameObjects) sedang berkembang. Untuk informasi lebih lanjut dan langkah selanjutnya melihat informasi di .

Ada dua fungsi utama untuk mengirim data ke server yang diformat sebagai bentuk HTML. Jika Anda bermigrasi dari sistem WWW, lihat Using WWWForm, di bawah ini.

Menggunakan IMultipartFormSection

Untuk memberikan kontrol yang lebih besar tentang bagaimana Anda menentukan data formulir Anda, sistem UnityWebRequest mengandung antarmuka IMultipartFormSection yang dapat digunakan pengguna. Untuk aplikasi standar, Unity juga menyediakan implementasi default untuk data dan bagian file: MultipartFormDataSection dan MultipartFormFileSection.

Kelebihan dari UnityWebRequest.POST menerima, sebagai parameter kedua, argumen Daftar, yang anggota harus semua menjadi IMultipartFormSections. Tanda tangan fungsi:

UnityWebRequest.Post(string url, List<IMultipartFormSection> formSections);

Details

  • Fungsi ini menciptakan UnityWebRequest dan mengatur URL target ke parameter string pertama. Ini juga menetapkan header Content-Type dari UnityWebRequest tepat untuk data formulir yang ditentukan dalam daftar objek IMultipartFormSection.
  • Fungsi ini, secara default, melampirkan DownloadHandlerBuffer ke UnityWebRequest. Ini untuk kenyamanan - Anda dapat menggunakan ini untuk memeriksa balasan server Anda.
  • Mirip dengan fungsi WWWForm POST, fungsi HLAPI ini memanggil setiap IMultipartFormSection yang dipasok dan memformatnya menjadi bentuk multipart standar sebagaimana ditentukan dalam RFC 2616.
  • Data formulir yang dipreformat disimpan dalam objek standar UploadHandlerRaw, yang kemudian melekat pada UnityWebRequest. Akibatnya, perubahan pada objek IMultipartFormSection yang dilakukan setelah panggilan UnityWebRequest.POST tidak tercermin dalam data yang dikirim ke server.

Example

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
using System.Collections.Generic;

public class MyBehavior : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Upload());
    }

    IEnumerator Upload()
    {
        List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
        formData.Add(new MultipartFormDataSection("field1=foo&field2=bar"));
        formData.Add(new MultipartFormFileSection("my file data", "myfile.txt"));

        UnityWebRequest www = UnityWebRequest.Post("https://www.my-server.com/myform", formData);
        yield return www.SendWebRequest();

        if (www.result != UnityWebRequest.Result.Success)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Form upload complete!");
        }
    }
}

Menggunakan wwwForm (fungsi urut)

Untuk membantu bermigrasi dari sistem WWW, sistem UnityWebRequest memungkinkan Anda untuk menggunakan objek WWWForm lama untuk menyediakan data formulir.

Dalam hal ini, tanda tangan fungsi adalah:

UnityWebRequest.Post(string url, WWWForm formData);

Details

  • Fungsi ini menciptakan UnityWebRequest baru dan menetapkan URL target ke nilai argumen string pertama. Ini juga membaca header kustom yang dihasilkan oleh argumen WWWForm (seperti Content-Type) dan menyalinnya ke dalam UnityWebRequest.
  • Fungsi ini, secara default, melampirkan DownloadHandlerBuffer ke UnityWebRequest. Ini untuk kenyamanan - Anda dapat menggunakan ini untuk memeriksa balasan server Anda.
  • Fungsi ini membaca data baku yang dihasilkan oleh objek WWWForm object dan penyangga dalam objek UploadHandlerRaw, yang melekat pada UnityWebRequest. Oleh karena itu, perubahan pada objek WWWForm setelah memanggil UnityWebRequest.POST tidak mengubah isi UnityWebRequest.

Example

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
 
public class MyBehavior : MonoBehaviour {
    void Start() {
        StartCoroutine(Upload());
    }
     
    IEnumerator Upload() {
        WWWForm form = new WWWForm();
        form.AddField("myField", "myData");
     
        UnityWebRequest www = UnityWebRequest.Post("https://www.my-server.com/myform", form);
        yield return www.SendWebRequest();
     
        if (www.result != UnityWebRequest.Result.Success) {
            Debug.Log(www.error);
        }
        else {
            Debug.Log("Form upload complete!");
        }
    }
}
Mendownload AssetBundle dari server HTTP (GET)
Upload data mentah ke server HTTP (PUT)