//開始由于要实现跨平台。考虑过用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 );
}


Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string的更多相关文章

  1. C# byte[]数组和string的互相转化 (四种方法)

    C# byte[]数组和string的互相转化 (四种方法) 第一种 [csharp] view plain copy string str = System.Text.Encoding.UTF8.G ...

  2. java byte数组与String互转

      java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String ...

  3. byte[]数组转换string类型

    byte[] OutData = new byte[2048];//交易返回数据 string pBusiCardInfoStr = Encoding.Default.GetString(OutDat ...

  4. 深入 JAVA里面关于byte数组和String之间的转换问题

    把byte转化成string,必须经过编码.  例如下面一个例子:  importjava.io.UnsupportedEncodingException; publicclass test{ pub ...

  5. java byte数组与String的相互转换

    String  ->   byte数组 String str = "abc天"; byte[] btr = str.getBytes(); System.out.printl ...

  6. 【delphi】Byte数组与String类型的转换

    string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起 ...

  7. JAVA关于byte数组与String转换的问题

    1 public class ToString{ public static void main(String[] args){ String aa = "hellow"; byt ...

  8. java压缩和解压字符串,Byte数组,String

    在网上找到的压缩解压的工具类,可以压缩String字符串 /*** * 压缩GZip * * @param data * @return */ public static byte[] gZip(by ...

  9. java里面byte数组和String字符串怎么转换

    //string 转 byte[] String str = "Hello"; byte[] srtbyte = str.getBytes(); // byte[] 转 strin ...

随机推荐

  1. SGU 130.Circle

    答案为Catalan数C(2k, k)/(k+1) #include <stdio.h> using namespace std; int k; int main() { scanf(&q ...

  2. SGU 152.Making round

    不断向下取直到,忽略的数累计到一个百分比,给当前百分比加1. 这道题要避免处理浮点数,用余数来处理,不然会wa 9 #include <iostream> #include <cma ...

  3. CSS3学习--dispaly:inline和float:left两者区别

    1.display:inline: 任何不是块级元素的可见元素都是内联元素.其表现的特性是“行布局”形式!(行布局:其表现形式始终以行进行显示)   2.float:left:指定元素脱离普通的文档流 ...

  4. C、C++、Java异或运算交换变量变量值的区别

    今天看到一位大神的博客,深受感触.决定也发一篇博客,证明一下我还活着. 于是我翻看以前学习时做的一些笔记,整理了一下,得到了一个关于异或运算交换变量变量值的笔记. 首先来看下面三组表达式,看起来他们都 ...

  5. YII框架的部署 通过YII脚手架程序创建应用程序系统

    1,把YII框架里面的framework复制粘贴到nginx目录下 2,创建一个商城系统: 1)修改环境变量 制定php.exe的目录 2)C:\Users\Administrator>cd C ...

  6. apt-cache madison package-name

    apt-cache madison package-name 搜索软件有那些可用版本,

  7. Python 环境

    文章出处:http://www.cnblogs.com/winstic/,请保留此连接 总结一下自己使用python过程中安装三方包的方法 Python 安装 Python的安装非常简单,本人使用的w ...

  8. C#操作xml的3种方式

    C#操作Xml有很多种方式,这里写出个人常使用的三种方式 XmlDocument DataSet linq to xml  首先声明本次操作使用的xml文件:books.xml:内容如下 <?x ...

  9. 尽量使用ToUpper比较,避免使用ToLower

    在编码时尽量使用ToUpper比较,避免使用ToLower,因为微软对ToUpper进行了优化,以下为测试结果: public void TestToLower() { Stopwatch watch ...

  10. 关于 self 和 super 在oc 中 的疑惑 与 分析

    关于 self 和 super 在oc 中 的疑惑 与 分析   面试一定都是很注重 基础的,不管高级还是初级. 虽然基础好跟基础不好都可以写 代码,网上那么多资料.  区分高低也就是研究的深度和广度 ...