Unity 中通过HttpWebRequest POST和GET请求数据

Unity之UnityWebRequest和使用 官方描述:UnityWebRequest 提供了一个模块化系统,用于构成 HTTP 请求和处理 HTTP 响应。UnityWebRequest 系统的主要目标是让 Unity 游戏与 Web 浏览器后端进行交互。该系统还支持高需求功能,例如分块 HTTP 请求、流式 POST/PUT 操作以及对 HTTP 标头和动词的完全控制。 阅读详情

Unity 中通过HttpWebRequest以POST形式传JSON格式(键值对格式)的参数请求数据。

注意:处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)

只需加上以下两行代码就行了。
        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;

 POST请求实现以下要求 

POST  "https://.....";        //提供获取Token值的服务接口地址(很重要)

入参body(json格式):
{
  "username":"后端提供",
  "password":"后端提供",
  "clientType": "WEB",
  "pid":"01967189376"
}

  /// <summary>
    /// POST请求方法
    /// </summary>
    /// <param name="url">获取Token值的服务URL地址(很重要)</param>
    /// <param name="jsonData">传入请求的参数,此处参数为JOSN格式</param>
    public void HttpPost(string url, string jsonData)
    {
        //处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)
        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;

        byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);
        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest.Method = "POST";
        httpWebRequest.ContentType = "application/json";
        //httpWebRequest.ContentLength = byteArray.Length;  //此处注释的情况下需要调整“myResponseStream.Close();"执行顺序
        Stream myResponseStream = httpWebRequest.GetRequestStream();
        myResponseStream.Write(byteArray, 0, byteArray.Length);
        myResponseStream.Close(); //"httpWebRequest.ContentLength"未赋值的情况下需要在此处执行关闭语句;若赋值了,可以放在最后执行关闭语句---
        HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
        StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
        string retString = myStreamReader.ReadToEnd();
        myStreamReader.Close();
        response.Close();
        if (!string.IsNullOrEmpty(retString))
        {
            Debug.LogError(retString);
            TokenDataInfo tokenDataInfo = JsonMapper.ToObject<TokenDataInfo>(retString);
            authorization = tokenDataInfo.token_type + " " + tokenDataInfo.access_token;
            Debug.Log(authorization);
        }
    }

Unity 中通过HttpWebRequest 以GET形式传authorization 的参数请求数据。

注意:处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)

只需加上以下两行代码就行了。
        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;

GET请求实现以下要求

GET "https://.....";        //提供请求数据的URL地址,以头文件形式发起请求进行Token验证

请求头带上
authorization
bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI3MDE1MTQ0NzM0NSIsInBpZCI6IjAxOTY3MTg5Mzc2IiwiZW50IjoiMDE5NjcxODkzNzYiLCJ0eXBlIjoiV0VCIiwiZXhwIjoxNTYwNjA2MjIwLCJqdGkiOiJkNDlhZWFkMi1lM2FhLTQ5MGItYWZiMC1iNmVmNDNmMTY5Y2UiLCJyb2xlcyI6W119.Vdumf8OOcLnfu8i2KiP7qzN1nPmSXmcwnH74LKFsydImgcVIBMT9rV4zCz8UnJxQq55XIQr1IjiAe1cIYEtESw==

  /// <summary>
    /// GET请求
    /// ContentType = "application/json";
    /// token为Authorization中的授权验证码
    /// </summary>
    /// <param name="Url">请求数据的URL地址</param>
    /// <param name="token">token为Authorization中的授权验证码</param>
    /// <returns></returns>
    public void HttpGet(string url, string token)
    {
        //处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)
        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";
        //request.ContentType = "application/json";
        if (authorization != null)
        {
            request.Headers.Add("authorization", token);//请求头文件
            Debug.LogError(authorization);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream myResponseStream = response.GetResponseStream();
        StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
        string retString = myStreamReader.ReadToEnd();
        myStreamReader.Close();
        myResponseStream.Close();
        response.Close();
        if (!string.IsNullOrEmpty(retString))
        {
            Debug.LogError(retString);
            GetDataInfo getDataInfo = JsonMapper.ToObject<GetDataInfo>(retString);
            Debug.LogError(getDataInfo.address["name"]);
            Debug.LogError(getDataInfo.companyInfo["companyName"]);
            Debug.LogError(getDataInfo.alarmCount);
            Debug.LogError(getDataInfo.faultCount);
        }
    }
}

UnityWebRequest-与后台数据传输Get/Post请求 Get/Post 阅读详情

相关推荐

Unity使用UnityWebRequest实现HTTP网络连接

Unity使用UnityWebRequest实现HTTP网络连接UnityWebRequest代码主要例项参考链接 UnityWebRequest Unity中UnityWebRequest和WWW都可以实现HTTP请求,但UnityWebRequest是Unity新的网络请求方式,新版本已经对WWWAPI弃用了。 UnityWebRequests处理与Web服务器的HTTP通信流。 需要注意的其他对象,特别是DownloadHandler和UploadHandler,分别管理下载和上传数据。 注意:一旦U

天富儿的博客 5576

Unity C# 之 使用 HttpWebRequest 基础知识/HttpWebRequest 进行异步Post 网络访问/数据流形式获取数据(Task/async/await)的代码简单实现

可以使用 UnityWebRequest 访问,不过好似只能用协程的方式,并且访问只能在主线程中;所以这里使用 C# 中的 HttpWebRequest,进行网络访问,而且 HttpWebRequest,允许在子线程中访问,在一些情况下可以大大减少主线程的网络访问压力;这里使用 HttpWebRequest ,进行 Post 访问,并且Task 结合 async (await) 的进行异步访问,最后使用 Stream 流式的形式获取数据,在这里做一个简单的记录,以便后期使用的时候参考。

仙魁XAN 8424

Unity网络(二)-Unity3D中的网络

正所谓:没有网络是没有灵魂的 欢迎关注公众号:雷潮课堂 Unity3D中的网络 一、WWW 1-1 Get 1-2 Post 1-3 案例(网络下载,本地存储与读取) 二、UnityWebRequest 2-1 Get 2-2 Post 2-3 案例(Json解析,展示) 2-4 斗鱼API请求实战(Get) 2-5 项目API请求实战(Post) 三、HttpWebRequest 3-1 代码演示 一、WWW Unity中的WWW(Unity2017以后已标记为弃用状态,但是仍然可以用

leichao168的博客 2238

【Unity】UnityWebRequest学习——Unity中的HTTP网络通信

Unity中的HTTP网络通信

Sig的博客 1万+

Ansys Maxwell磁场仿真入门:无线传能线圈自感与互感计算全流程

本文详细介绍了使用Ansys Maxwell进行无线充电线圈磁场仿真的全流程,包括模型建立、求解器设置、电感参数提取及优化策略。通过实战案例,帮助工程师掌握线圈自感与互感计算技巧,提升无线充电系统设计效率与精度。重点解析了Maxwell在磁场仿真中的关键应用,适用于电磁场仿真初学者和进阶用户。

weixin_29047545的博客 436

组态王|通过日历控件选择时间段查询历史报警

哈喽,你好啊,我是雷工!这节记录下查询历史报警信息的功能实现。以下为实现笔记。

做有价值的事,积累有价值的笔记! 3758

【c#编程技术总结】HttpWebRequest 用法总结测试<二>

欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 public class HttpWebRequestTest : MonoBehaviour { string url = "http://........"; string token = "asd1212adsa1d651dwfedf1sdf"; //发送以post方式发送http请求,并将参数以json格式传递到body体中 public string HttpPost() .

纯技术流日常开发商业开发记录总结等 987

基于睿抗智能小车省赛第一题兵人识别的学习5.25

先用pip uninstall numpy卸载,再在后面输入pip install numpy==1.23安装版本为1.23的numpy。首先安装Anaconda环境;pycharm方便使用,安装yolov5以及一大堆数据包;由于python中的numpy插件包版本过高,训练失败,所以要安装一个版本低的包。每次运行都要先运行虚拟环境,输入:conda activate。图中所有精度大概在0.768-0.99之间。这里指定安装numpy1.23.。训练完成会得到一个衡量精度的指标。等待99张图片训练完成。

Haili_的博客 1298

在unity中使用HttpWebRequest进行post/get上传,c#代码

// text/html : HTML格式, text/plain :纯文本格式, text/xml :XML格式, image/gif :gif图片格式, image/jpeg :jpg图片格式, image/png:png图片格式。=========================以上是工具类使用=============================/// <param name="file"></param>文件路径。////指定客户端代理的方式。/// </summary>post上传文件。

Mar_cjc的博客 1870

windchill安装搭建(保姆式)

保姆式搭建windchill 材料准备 Vmware工具,用来创建和打开虚拟机的工具 安装系统的镜像文件 数据库安装文件,这里是Oracle数据库 Windchill的安装包 Vmware工具,用来安装和打开虚拟机的软件 Windowsserver2008的镜像工具,用来安装虚拟机环境的系统,如果你有win2007或win2010的也可以,在做虚拟机时,需要先安装系统。 Oracle数据库安装包 Windchill11M030的安装包 (安装包如有需要可以私信邮箱发送) 虚拟机安装 安装虚拟机VMware

tr1294937662的博客 6216

手把手教你使用ConvNeXt训练自己数据集和推理,ConvNeXt模型训练(CVPR 2022),一个能挑战 Vision Transformer 的卷积神经网络,含完整代码和数据集

手把手教你使用ConvNeXt训练自己数据集和推理,ConvNeXt模型训练(CVPR 2022),一个能挑战 Vision Transformer 的卷积神经网络,含完整代码和数据集

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1448

unity携带header发送POST请求

unity中的网络请求,最方便、常用的如下两种方法。分别实现GET/POST。实际设计项目时,基础的表单POST显得相对简陋,后端往往需要添加许多验证。本文就主要介绍这些情况下,携带header头发送Post请求的注意事项,案例中需要用到LitJson。 WWW www = new WWW(url); //GET WWW www = new WWW(url, form); //POST   ...

setsuodu的博客 2万+

【RT-DETR涨点改进】全网独家-特征融合改进篇 | AAAI 2025 顶会| 高效涨点,RT-DETR利用CDFA对比度特征聚合模块,适用于目标检查(全网独家创新)

本文提出了一种基于CDFA模块的多级特征融合优化RT-DETR模型,用于解决医学图像分割中的软边界模糊、小目标和共现现象等问题。CDFA模块通过对比度特征聚合、局部特征增强和多级注意力机制,有效提升模型性能。研究提供了三种改进方案(rtdetr-r18/y50/l-CDFA),并在多个医学数据集上验证了其有效性。核心创新包括语义信息解耦、对比驱动特征融合和尺寸感知解码器。实验结果表明,该方法在分割精度和鲁棒性方面达到SOTA水平。

Ai缝合怪、助力小伙伴高效发论文 509

unity 调用java接口_unity通过HttpWebRequest与调用java接口

在介绍之前先说明一下,unity可以发布安卓的apk包,本身封装了一些调用java的函数,但是必须是在一个工程内的前提下,如果java是服务器呢,又该如何去调用java的接口,通常在unity中使用c#接口关键字是interface,java中也又interface关键字,也是接口,但是咱们说通过http来调用的话并不是这种接口。也许我还是一个萌新的原因,对其他语言不是特别了解。今天介绍一个Htt...

weixin_29554849的博客 1268

Qt入门教程100篇(已完结)

Qt5入门教程,Qt6入门教程。包含了: Qt环境搭建篇、Qt数据类型篇、Qt中STL篇、Qt核心篇、Qt核心对象QObject篇、Qt基础控件篇、Qt对话框篇、Qt高级控件篇、Qt数据模型篇、QSS篇、Qt文件篇 、Qt硬件编程、Qt的一些demo、Qt项目开发篇。......

小鱼酱的博客 15万+

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

unity通过HttpWebRequest与调用java接口

在介绍之前先说明一下,unity可以发布安卓的apk包,本身封装了一些调用java的函数,但是必须是在一个工程内的前提下,如果java是服务器呢,又该如何去调用java的接口,通常在unity中使用c#接口关键字是interface,java中也又interface关键字,也是接口,但是咱们说通过http来调用的话并不是这种接口。也许我还是一个萌新的原因,对其他语言不是特别了解。 今天介绍一个 H...

qq_41505689的博客 6267

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C#通过WebClient/HttpWebRequest实现http的post/get方法

C#通过WebClient/HttpWebRequest实现http的post/get方法   http://www.cnblogs.com/shadowtale/p/3372735.html  

weixin_33963594的博客 93

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HttpWebRequest和WebClient的区别

HttpWebRequest和WebClient的区别(From Linzheng):1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Create();2,其Method指定了请求类型,这里用的GET,还有POST;也可以指定ConentType;3,其请求的Uri必须是绝对地址;4,其请求是异步回调方式的,从BeginGetResponse开始...

weixin_34307464的博客 137

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Unity网络传输之HTTP协议

unity3d项目要做跟服务器通信的模块,然后服务器那边的协议是基于http的Jsonrpc通信方式 一开始,用C#的本身类HttpWebRequest来提交请求,很快就在电脑上面成功了,代码也很简单,这里就不贴了 这个类没办法在IOS或者android平台上面使用,只能在MAC或者WIN上面进行Http的网络请求。。。所以就没用了= =。。。 然后再用WWW这个类,通过官方的文档,这个类其实是对...

wu392179786的博客 4370

解决在Unity3D中通过Post向服务器提交请求,表单中带有中文导致的乱码问题!

好久没写博客了,最近公司比较忙,今天熬夜解决了一个问题,很有成就感,网上相关资料比较少,所以我打算写下来分享出来。 这个功能是公司的需求,就是要实现中文账号登录的功能,最初的写法就是用的unity自带的www功能,简单几行就可以实现post请求,缺点就是unity自带的www无法实现编码转换。所以是不支持中文账号提交的。实现代码如下: void Start() { St

阶梯-开发的故事 1万+

HttpWebRequest 的管理类

HttpWebRequest的使用

qq_26459233的博客 215

告别卡死!手把手教你重写海康OpenAPI的HTTP请求,让Unity WebGL流畅调用摄像头接口

本文详细解析了Unity WebGL平台调用海康摄像头OpenAPI时常见的卡死问题,提供了重写HTTP请求的完整方案。通过替换HttpWebRequest为UnityWebRequest,优化海康安全认证流程,开发者可有效解决WebGL沙箱限制,实现流畅的摄像头接口调用。文章包含代码示例、性能优化和调试技巧,是Unity与海康摄像头集成的实用指南。

weixin_30617737的博客 629

告别HttpWebRequest卡死!UnityWebRequest重写海康OpenAPI库的WebGL适配指南

本文详细介绍了如何使用UnityWebRequest重构海康OpenAPI库,解决WebGL平台下HttpWebRequest卡死问题。通过实战代码示例和性能优化建议,帮助开发者实现海康摄像头在WebGL环境中的流畅集成,提升跨平台兼容性和用户体验。

weixin_30691871的博客 507

httpwebrequest 模拟登录 获取cookies 以前的代码,记录备忘!

2个类,一个基类,一个构建头信息调用类关于如何获取到post中的内容,你之需要用http抓包工具把你与目标网站的请求信息抓下来后,打开分析下按照抓下来的包中的数据进行构建就行了using System;using System.Collections.Generic;using System.Text;using System.Net;using System.IO;n

atlasroben的专栏 7018

201710152055->关于unity提交中文正文解析错误

分析: 之前利用www类中wwwform提交正文 经过服务器返回正文中中文的显示变乱码 查资料发现wwwform类不支持解析中文 于是转用httpwebrequest发送请求 目的: 客户端请求服务端拿中文正文 关键点: 1.httpwebrequest类的构造,参数设置,正文写入 2.GetResponse()接收响应正文,走streamreader解析,设置好encoding

qq_28902031的博客 355
上一篇: Unity 中通过UnityWebRequest POST和GET请求服务器数据
下一篇: war包部署到tomcat基本步骤
科幻之眼
博客等级 码龄9年 101粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值