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

//开始因为要实现跨平台,考虑过用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); } //表单传值,就是postWWW www = new WWW(url, form);yield return www; fWaitProgress = ;if ( != null) {//POST请求失败strResult = "error :" + ; } else {//POST请求成功strResult = ; } }//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); //表单传值,就是postWWW www = new WWW(url, form);yield return www; fWaitProgress = ;if ( != null) {//POST请求失败strResult = "error :" + ; } else {//POST请求成功strResult = ; } }//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);//表单传值,就是postWWW www = new WWW(url, form);yield return www; fWaitProgress = ;if ( != null) {//POST请求失败strResult = "error :" + ; } else {//POST请求成功strResult = ; } }//用法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","");//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 );}

只要功夫深,铁棒磨成绣花针。

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

相关文章:

你感兴趣的文章:

标签云: