GetAndPost

using UnityEngine;
using System.Collections;

public class GetAngPost : MonoBehaviour {
//显示按钮按下的信息
string m_info = "账户密码显示区域";


private AudioClip myMusic;
//场景里的image
public Texture2D Img;
//替换的Texture
protected Texture2D Texture;

void Start()
{ //开始执行函数,获得我要的音乐
StartCoroutine(GetMyMusic());
}

void OnGUI() {
//在屏幕上约束所有的元件在800X600的矩形区域里面,以EndGroup结束
GUI.BeginGroup(new Rect(Screen.width / 2 - 100, Screen.height / 2 - 100, 800, 600));
//为信息显示的位置赋值
GUI.Label(new Rect(0,10,150,40),m_info);
//创建GetData按钮
if(GUI.Button(new Rect(0,60,150,30),"GetData"))
{ //开始执行GetData函数
StartCoroutine(GetData());

}
//创建PostData按钮
if(GUI.Button(new Rect(0,100,150,30),"PostData"))
{
StartCoroutine(PostData());
}
if (Img != null)
{
GUI.DrawTexture(new Rect(0, 170, Texture.width, Texture.height), Texture);
}
if (GUI.Button(new Rect(0, 140, 150, 30), "changePicture"))
{
StartCoroutine(ChangeTheTexture());
}
GUI.EndGroup();
}
//Get方法向服务器提交数据
IEnumerator GetData(){
//实例化WWW,并向它指定的IP地址发送Get请求,这里提交了两个数据,一个用户名usename,一个是密码password,它们的值分别是Get和12345
WWW www=new WWW("http://192.168.0.98/Test.php?username=Get&password=12345");
//使用yield,要等待一段时间,WWW实例在Web后台运行,需要等待Web反应时间
yield return www;
//判断非空,就将信息返回,存入WWW实例的text属性里面
if (www.error != null) {
m_info = www.error;
yield return null;
}
m_info = www.text;
}
IEnumerator PostData()
{
//Post是以(FORM)表单的形式向服务器提交数据,header是一个Hashtable,与键、值对应
//保存HTTP的报头,将字符串转换为字节数组
System.Collections.Hashtable headers = new Hashtable();
headers.Add("Content-Type", "application/x-www-form-urlencoded");


string data="username=post&password=112233";
byte[] bs = System.Text.UTF8Encoding.UTF8.GetBytes(data);
WWW www=new WWW("http://192.168.0.98/Test.php",bs,headers);
yield return www;
if(www.error!=null)
{
Debug.Log("_________________");
m_info=www.error;
yield return null;
}
m_info=www.text;
}
IEnumerator GetMyMusic()
{
WWW www = new WWW("http://192.168.0.98/music.mp3");
yield return www;


if (www.error != null)
{
m_info = www.error;
yield return null;
}
//播放指定的音乐文件
myMusic = www.GetAudioClip(false);
audio.PlayOneShot(myMusic);

}

IEnumerator ChangeTheTexture()
{
byte[] bs = Img.EncodeToPNG();
WWWForm form = new WWWForm();
form.AddBinaryData("picture", bs, "screenshot", "image/png");
WWW www = new WWW("http://192.168.0.98/Test.php", form);
yield return null;
if (www.error != null)
{
m_info = www.error;
yield return null;
}
Texture = www.texture;
}

}

posted @ 2016-08-31 11:16  Fei非非  阅读(202)  评论(0编辑  收藏  举报