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 );
}
Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string的更多相关文章
- C# byte[]数组和string的互相转化 (四种方法)
C# byte[]数组和string的互相转化 (四种方法) 第一种 [csharp] view plain copy string str = System.Text.Encoding.UTF8.G ...
- java byte数组与String互转
java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String ...
- byte[]数组转换string类型
byte[] OutData = new byte[2048];//交易返回数据 string pBusiCardInfoStr = Encoding.Default.GetString(OutDat ...
- 深入 JAVA里面关于byte数组和String之间的转换问题
把byte转化成string,必须经过编码. 例如下面一个例子: importjava.io.UnsupportedEncodingException; publicclass test{ pub ...
- java byte数组与String的相互转换
String -> byte数组 String str = "abc天"; byte[] btr = str.getBytes(); System.out.printl ...
- 【delphi】Byte数组与String类型的转换
string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起 ...
- JAVA关于byte数组与String转换的问题
1 public class ToString{ public static void main(String[] args){ String aa = "hellow"; byt ...
- java压缩和解压字符串,Byte数组,String
在网上找到的压缩解压的工具类,可以压缩String字符串 /*** * 压缩GZip * * @param data * @return */ public static byte[] gZip(by ...
- java里面byte数组和String字符串怎么转换
//string 转 byte[] String str = "Hello"; byte[] srtbyte = str.getBytes(); // byte[] 转 strin ...
随机推荐
- javascript--15条规则解析JavaScript对象布局(__proto__、prototype、constructor)
大家都说JavaScript的属性多,记不过来,各种结构复杂不易了解.确实JS是一门入门快提高难的语言,但是也有其他办法可以辅助记忆.下面就来讨论一下JS的一大难点-对象布局,究竟设计JS这门语言的人 ...
- 基于jQuery 的图片瀑布流实现
解题思路: 第1步 分析问题:我这边的处理方式是以列为单位.每次滚动条滚到底部,把需要加的新的内容放在高度最小的列.如下图所示 加载后的显示 如果在继续往下滚动.新图片就会在1下边显示,如此类推. ...
- C#遍历所有的Textbox控件并赋值为String.Empty
foreach (Control control in this.Controls) { if (control.GetType().Name.Equals("TextBox")) ...
- MySQL5.7.9免安装版配置方法
1. 解压MySQL压缩包 将下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\mysql-5.7.9-win32" ...
- ThinkPHP 自动验证与自动填充无效可能的原因
原文链接:http://www.5idev.com/p-thinkphp_validate_auto_Invalid.shtml 自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇 ...
- Mvc Controller 单元测试 Mock User.Identity.Name
被测试的Action 包含 User.Identity.Name 代码,在写测试代码需要Mock ControllerContext对象 代码如下: var mock = new Mock<Co ...
- bzoj2180: 最小直径生成树
Description 输入一个无向图G=(V,E),W(a,b)表示边(a,b)之间的长度,求一棵生成树T,使得T的直径最小.树的直径即树的最长链,即树上距离最远的两点之间路径长度. Input 输 ...
- 劫持Disucz系列密码
目标文件:/source/class/class_member.php 找到: if($result['status'] > 0) 前面加入: $log_file = "./data/ ...
- Js使用word书签填充内容
Js使用word书签填充内容 1.在模板文件中需要填充的地方插入书签 填充内容为:(|光标所在处) 填写书签名,点击添加完成: 2.使用js打开模板,获取书签位置,填充数据: function pri ...
- Java中接口与实例化
一.问题引入 前两天学代理模式的时候想到的,接口可不可以new呢? 接口是特殊的抽象类,接口的方法都默认为 public abstract 的... 抽象的方法不 ...