Unity的WWW類的用法整理
(1).一種GET方式:
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start() {
//在C#中,需要用到yield的話,必須建立在IEnumerator類中執行。
WWW www = new WWW(url);
//定義www爲WWW類型並且等於所下載下來的WWW中內容。
yield return www;
//返回所下載的www的值
renderer.material.mainTexture = www.texture;
//將下載下來的WWW中的圖片賦予到默認物體的材質上進行渲染出來
}
}
{
WWW www = new WWW("http://127.0.0.1/Test.php?username=get&password=12345");
yield return www;//等待Web服務器的反應
if (www.error != null)
{
m_info = www.error;
yield return null;
}
m_info = www.text;
}
(2)下面說說POST方式:
WWWForm.headers 表單頭
var headers :Hashtable
(只讀)爲使用WWW類傳遞的表單返回一個正確的請求頭。這個域只包含一個頭,/"Content-Type"/爲表單設置正確的mine類型。"application/x-www-form-urlencoded"用於一般的表單,"multipart/form-data"用於使用AddBinaryData添加表單包含數據。
同理,WWWForm的數據格式也是使用的哈希表來存儲的數據,即鍵名對應一個值,注意這些鍵名是string類型的,並且是在服務器端能夠被識別的(能夠讀取其保存的值這樣一個名字,又或者說本地的表單中存放的數據格式是和服務器端開發人員商量好的,定了數據的傳輸協議的即數據格式(變量的順序等等))
{
System.Collections.Hashtable headers = new System.Collections.Hashtable();
headers.Add("Content-Type", "application/x-www-form-urlencoded");//哈希表的數據格式
string data = "username=post&password=6789";
byte[] bs = System.Text.UTF8Encoding.UTF8.GetBytes(data);
WWW www = new WWW("http://127.0.0.1/Test.php", bs, headers);
yield return www;
if (www.error != null)
{
m_info = www.error;
yield return null;
}
m_info = www.text;
}
{
byte[] bs = m_uploadImage.EncodeToPNG();////將圖片轉化爲Byte[]數組
WWWForm form = new WWWForm();
form.AddBinaryData("picture", bs, "screenshot", "image/png");
WWW www = new WWW("http://127.0.0.1/Test.php", form);
yield return www;
if (www.error != null)
{
m_info = www.error;
yield return null;
}
m_downloadTexture = www.texture;
}
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public WWWForm form = new WWWForm();
public System.Collections.Hashtable headers = form.headers;
form.AddField("name", "value");
form.AddField("score", "value");
public byte[] rawData = form.data;public string url = "www.myurl.com";public WWW www = new WWW(url, rawData, headers);public IEnumerator Awake() {headers["Authorization"] = "Basic " + System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes("username:password"));yield return www;}}
- www.Dispose (); //釋放資源 在使用www類結束時,調用此方法,釋放資源