Unity的www主要支持HTTP中的GET和POST方式,GET方式会将请求附加到URL后,POST方式则是通过FORM的形式提交。
以下为Unity客户端的信息:
using UnityEngine; using System.Collections; public class WebManger : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } string m_string="Nothing"; void OnGUI() { GUI.BeginGroup(new Rect(300,Screen.height*0.5f-1,500,200),""); GUI.Label(new Rect(10,10,300,30),m_string); if(GUI.Button(new Rect(10,50,100,30),"Get Data")) { StartCoroutine(IGetData()); } if(GUI.Button(new Rect(10,90,100,30),"Post Data")) { StartCoroutine(IPostData()); } GUI.EndGroup(); } IEnumerator IGetData() { WWW www=new WWW("http://localhost:12063/Default.aspx?name=hometown1986"); yield return www; //等待WEB服务器的反应 if(www.error!=null) { m_string=www.error; yield return null; } m_string=www.text; } IEnumerator IPostData() { System.Collections.Hashtable headers=new Hashtable(); headers.Add("Content-Type","application/x-www-form-urlencoded"); //保存HTTP的报头 //把字符串保存为BYTE数组 string data="pwd=chinajoy"; byte[] bt=System.Text.UTF8Encoding.UTF8.GetBytes(data); WWW www=new WWW("http://localhost:12063/Default.aspx",bt,headers); yield return www; if(www.error!=null) { m_string=www.error; yield return null; } m_string=www.text; } }
下面是C#服务器端的处理:
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Get if (Request.QueryString["name"] != null) { Response.Write("你传过来的name:" + Request.QueryString["name"].ToString()); } //Post Response.Write("密码为:"+Request.Form["pwd"]); Response.End(); } }