unity中使用httppost的两种方式

2023-05-16

最近需要在unity中使用http post的方式传递消息,所以做一下记录吧

1、unity自己的www 方式

因为我传递的消息是json字符串所以前期的工作就是 拼字符串然后通过litjson或者newtonsoft.json等库转换成byte数组然后,,,,,直接上代码吧

 IEnumerator SendToTuring()
    {
        JsonMsg jsMsg = new JsonMsg();
        jsMsg.reqType = 0;
        jsMsg.perception = new Perception();
        jsMsg.perception.inputText = new InputText();
        jsMsg.userInfo = new UserInfo();
        jsMsg.perception.inputText.text = "你好";
        jsMsg.userInfo.apiKey = "8bcdd2feb55143b4adc958fed9c9f536";
        jsMsg.userInfo.userId = "284239";
        string input = JsonMapper.ToJson(jsMsg);
        byte[] byteArry = System.Text.Encoding.UTF8.GetBytes(input);
        WWW getData = new WWW(url, byteArry);
        yield return getData;
        if(getData.error != null)
        {
            Debug.Log(getData.error);
        }
        else
        {
            Debug.Log(getData.text);
        }
    }

2、主动post的方法(这个貌似是纯C#的方法)

也是直接上代码

        string PostStr2Unit(string recStr)
    {
        string token = "24.f50db32087fd2**********.1546683946.282335-15076515";
        string url = "https://aip.baidubce.com/rpc/2.0/unit/bot/chat?access_token=";
        //logid++;
        string logId = "Sd" + System.DateTime.Now;
        string str = "{"bot_session":"",";
            str += ""log_id":"785426",";
        str += ""request":";
        str += "{"bernard_level":1,";
        str += ""client_session":";
        str += ""{\\"client_results\\":\\"\\", ";
        str += "\\"candidate_options\\":[]}",";
        str += ""query":"" + recStr + "",";
        str += ""query_info":{"asr_candidates":[],"source":"KEYBOARD","type":"TEXT"},"updates":"","user_id":"88888"},"bot_id":"15554","version":"2.0"}";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + token);
        request.Method = "post";
        request.ContentType = "application/json";
        request.KeepAlive = true;
        Debug.Log(str);
        byte[] byteArry = Encoding.UTF8.GetBytes(str);
        request.ContentLength = byteArry.Length;
        request.GetRequestStream().Write(byteArry, 0, byteArry.Length);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
        string result = reader.ReadToEnd();
        JObject jdata = (JObject)JsonConvert.DeserializeObject(result);
        Debug.Log(jdata);
        string intent = jdata["result"]["response"]["schema"]["intent"].ToString();
      
        return intent;
    }

 

对比发现貌似是www的方法必须得放到协程里面才能使用,但是直接post的方法不用,根据不同场景调用不同的函数吧,也不能说谁优谁劣,毕竟使用合适的函数才是优秀的代码对吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity中使用httppost的两种方式 的相关文章

随机推荐

  • Android native内存泄露排查总结

    Android开发通常涉及java层 native xff08 c c 43 43 xff09 下的开发 xff1b 内存的泄露也可以分为dalvik和native两种 xff1b java层的通常叫好分析 xff0c 可以借助heapdu
  • 分享一个手游脚本源码

    目的 给大家接触手游模拟脚本的一个样板 xff0c 支持多分辨率适配 脚本功能为批量送体力给好友 xff0c 功能简单 源码 lua span class token comment 版本 span span class token com
  • crackme例子2

    样本 jadx clacSnFuntion jni函数 xff0c ida分析 关键位置函数一片红色 xff0c 可能有动态加解密 如果不分析具体解密算法 xff0c 可内存dump解密后整个so frida如下 xff1a span cl
  • 8本游戏开发书籍推荐

    很多刚刚接触游戏开发的朋友经常问我 xff1a 如何开始学习游戏开发 xff1f 我从事游戏开发行业很多年了 xff0c 坦率地讲 xff0c 开发游戏充满挑战性 xff0c 需要开发人员具备大量的技能与积极的创新精神 希望这篇小文能帮助朋
  • win10编译scrcpy详解

    环境配置 安装MSYS2 安装后打开msys终端 xff0c 运行如下命令 span class token comment runtime dependencies span pacman S mingw w64 x86 64 SDL2
  • windows编译安卓源码记录

    环境 Windows10 43 vmware17 43 ubuntu22 ubuntu环境设置 装完ubuntu系统后拖拽复制文件进去验证vmtools功能情况 xff0c 如果vmtools异常很麻烦 xff0c 试了n多方法 xff0c
  • adb执行多条连续cmd命令

    你可以试一下下面的方法 xff1a 64 echo off echo su gt temp txt echo 其它命令 gt gt temp txt adb shell lt temp txt del temp txt 普通情况 xff0c
  • java代码混淆

    什么是代码混淆 Java 是一种跨平台的 解释型语言 xff0c Java 源代码编译成中间 字节码 存储于 class 文件中 由于跨平台的需要 xff0c Java 字节码中包括了很多源代码信息 xff0c 如变量名 方法名 xff0c
  • nm命令 查看符号文件

    nm命令介绍的很多 xff0c 但大多不介绍其函数符号标志的含义 最近在调试动态库时常用到 xff0c 其中用的最多的用法 nm A grep aaa c 43 43 filt A 为了显示文件 xff0c c 43 43 filt转换为可
  • 把1-9这9个数字按从小到大的顺序排列 ,中间添上“+”和“-“,““,可以计算的结果等于100的程序

    Talk is cheap show me the code 穷举法 计算次数 3 8 61 6561 输出等于100的结果 arr 61 1 2 3 4 5 6 7 8 9 flag 61 34 43 34 34 34 34 34 fun
  • 安卓某Q协议分析

    直接进入主题 主要数据包 renamed from oicq wlogin sdk request l 抓包数据分析 oicq wlogin sdk request request TGTGT 这个类 tlv18 包数据 001800160
  • pyinstaller打包

    virtualenv pip span class token function install span virtualenv pipenv xff08 官方推荐 xff09 pip span class token function i
  • sudo apt-get update 报错:E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/te

    Ubuntu 更换源后 xff0c 使用命令更新源 xff0c 出现报错 xff0c 解决办法 今天在装完ubuntu系统后 xff0c 更换了阿里源 xff0c 使用sudo apt get update命令更新源 出现如下错误 xff1
  • 基于线程池的生产者消费者模型(含阻塞队列)

    一 线程池 二 模型实现 1 准备工作 2 创建线程 3 PushTask函数 4 PopTask函数 5 线程执行函数Routines 三 模型测试 一 线程池 和内存池一样 xff0c 线程池也是为了提升效率 一个服务器可能短时间会接收
  • 意图识别资料纪录

    今天搞意图识别貌似这个资料的介绍很不错 不知道怎么转载 xff0c 放到这https blog csdn net zengNLP article details 94657099
  • 在C#中 麦克风录音数据float [] 转byte [] 的方法

    public static byte AudioFloat2Byte float floatData float samples 61 floatData audio clip GetData samples 0 short intData
  • redis 是个啥后续--Redis 数据缓存和消息队列

    用python写了一个Redis 的数据缓存和消息队列的例子 xff0c 代码没有在这里传 xff0c 有想看的去Github 上吧 xff0c 有什么问题别赖我 xff0c 在这个领域我知道的也就这么多了 xff0c 后续还有更深的研究的
  • 第二天-模板简单修改(基于t3-bs3-blank模板)

    最近做joomla网站由于客户要求首页内容比较特殊 xff0c 但是现有的模板块布局又不符合要求 xff0c 没办法只能硬着头皮上 改代码 xff0c 修改代码前请先备份 xff01 xff01 xff01 手中有一个T3的模板 xff0c
  • 设置开机软件启动的方法

    前两天要设置自己公司研发的软件设备的开机启动 从网上找到的如下方法 环境win10 xff0c win7都适用 第一步 快捷键 meta 43 R 也就是键盘上win 43 R 调出运行 第二步 在运行中输入 shell startup 然
  • unity中使用httppost的两种方式

    最近需要在unity中使用http post的方式传递消息 xff0c 所以做一下记录吧 1 unity自己的www 方式 因为我传递的消息是json字符串所以前期的工作就是 拼字符串然后通过litjson或者newtonsoft json