Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string

//开始因为要实现跨平台,考虑过用curl封装c++的dll(android *.so)的方式,在c#Dllimport实现
//后来发现Unity3D本身支持http协议,且face++的api都是http访问返回json串的,
//在看过face++ phpsdk c#sdk androidsdk之后突发奇想,想到如下方法
//Unity3d 集成 Face++的好方法


public float fWaitProgress = 0;  
public string strResult = "";

//POST请求(多个参数)
public IEnumerator POST(string url, Dictionary<string, string> post)  

//表单   
WWWForm form = new WWWForm();  

form.AddField("api_key", FACE_KEY);
form.AddField("api_secret", FACE_SECRET);

//从集合中取出所有参数,设置表单参数(AddField()).  
foreach (KeyValuePair<string, string> post_arg in post)  
{  
form.AddField(post_arg.Key, post_arg.Value);  
}  
//表单传值,就是post   
WWW www = new WWW(url, form);  

yield return www;  
fWaitProgress = www.progress;  

if (www.error != null)  
{  
//POST请求失败  
strResult =  "error :" + www.error; 
}  
else  
{  
//POST请求成功  
strResult = www.text;  
}  
}
//POST请求(单个参数)
public IEnumerator POST(string url, string key, string value)  

//表单   
WWWForm form = new WWWForm();  

form.AddField("api_key", FACE_KEY);
form.AddField("api_secret", FACE_SECRET);
form.AddField(key, value);  
//表单传值,就是post   
WWW www = new WWW(url, form);  

yield return www;  
fWaitProgress = www.progress;  

if (www.error != null)  
{  
//POST请求失败  
strResult =  "error :" + www.error; 
}  
else  
{  
//POST请求成功  
strResult = www.text;  
}  
}
//POST请求(二进制参数)
public IEnumerator POST(string url, string key, byte [] bytes,string name,string type)  

//表单   
WWWForm form = new WWWForm();  

form.AddField("api_key", FACE_KEY);
form.AddField("api_secret", FACE_SECRET);
form.AddBinaryData(key, bytes, name, type);
//表单传值,就是post   
WWW www = new WWW(url, form);  

yield return www;  
fWaitProgress = www.progress;  

if (www.error != null)  
{  
//POST请求失败  
strResult =  "error :" + www.error; 
}  
else  
{  
//POST请求成功  
strResult = www.text;  
}  
}


//用法
if (GUI.Button(new Rect(10, 130, 100, 60), "post")) 

//byte[] pngData = texture2D.EncodeToPNG();
//StartCoroutine(POST(URL_DETECT ,"img",pngData,"test.png","image/png"));    


    Dictionary<string, string> dic = new Dictionary<string, string>(); 
dic.Add("url","http://aaaa.com/a.jpg");
    //dic.Add("img","c:\\a.jpg");
    StartCoroutine(POST(URL_DETECT ,dic));


    //StartCoroutine(POST(URL_DETECT ,"img","c:\\a.jpg"));


    //unity byte数组转string
    //byte[] pngData = texture2D.EncodeToPNG();
    //string strData = System.Text.Encoding.Default.GetString(pngData,0,pngData.Length );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值