unity中UnityWebRequest和WWW都可以实现HTTP请求,下面举例说明两种方法分别实现Get和Post请求

1、UnityWebRequest实现HTTP请求

Get请求

IEnumerator GetRequest(string url)
{using (UnityWebRequest webRequest = UnityWebRequest.Get(url)){yield return webRequest.SendWebRequest();if (!string.IsNullOrEmpty(webRequest.error)){Debug.LogError(webRequest.error);}else{Debug.Log(webRequest.downloadHandler.text);}}
}

Post请求

IEnumerator PostRequest(string url)
{WWWForm form = new WWWForm();form.AddField("name", "posttest");using (UnityWebRequest webRequest = UnityWebRequest.Post(url, form)){yield return webRequest.SendWebRequest();if (!string.IsNullOrEmpty(webRequest.error)){Debug.LogError(webRequest.error);}else{Debug.Log(webRequest.downloadHandler.text);}}
}

Post请求需要用到WWWForm来添加post数据,WWWForm.AddBinaryData还可以添加二进制数据(如上传文件)。

2、WWW实现HTTP请求

Get请求

IEnumerator GetRequest(string url)
{using (WWW www = new WWW(url)){yield return www;if (!string.IsNullOrEmpty(www.error)){Debug.LogError(www.error);}else{Debug.Log(www.text);}}
}

Post请求

IEnumerator PostRequest(string url)
{WWWForm form = new WWWForm();form.AddField("name", "posttest");using (WWW www = new WWW(url, form)){yield return www;if (!string.IsNullOrEmpty(www.error)){Debug.LogError(www.error);}else{Debug.Log(www.text);}}
}

为了验证上述请求,用Node搭建一个简单的服务器

Get请求测试服务器

var http = require("http");
var url=require('url');http.createServer(function(req, res){// 解析 url 参数,返回给客户端var params = url.parse(req.url, true).query;res.write("name:" + params.name);res.end();}).listen(8888);

运行服务器后,在客户端调用下列代码即可

string getUrl = "http://127.0.0.1:8888?name=gettest";
StartCoroutine(GetRequest(getUrl));

Post请求测试服务器

var http = require("http");
var querystring = require('querystring');
var util=require('util');
http.createServer(function(request, response) {  var post = '';request.on('data', function(chunk){    post += chunk;});request.on('end', function(){    post = querystring.parse(post);response.end(util.inspect(post));      });
}).listen(8889);

客户端运行下列代码

string postUrl = "http://127.0.0.1:8889";
StartCoroutine(PostRequest(postUrl));

一切顺利的话会打印如下消息

unity实现HTTP请求相关推荐

  1. Unity | Unity发送Http请求并处理得到的Json数据

    说明 Unity中UnityWebRequest和WWW都可以实现HTTP请求,这里使用的是UnityWebRequest发送Post请求. UnityAPI-UnityWebRequest 架构 U ...

  2. Unity使用UnityWebRequest请求服务器json数据,webgl端服务器请求

    根据unity官方说的, WebGL 网络无法直接访问套接字 由于存在安全隐患,JavaScript 代码无法直接访问 IP 套接字来实现网络连接.因此,.NET 网络类(即 System.Net 命 ...

  3. Unity + SQL数据库创建管理玩家排行榜学习教程

    Unity + SQL Databases Player Management Leaderboards + More! Unity + SQL数据库玩家管理排行榜+更多! MP4 |视频:h264, ...

  4. 【专栏精选】Unity中的HTTP网络通信

    本文节选自洪流学堂公众号技术专栏<大话Unity2019>,未经允许不可转载. 洪流学堂公众号回复专栏,查看更多专栏文章. 洪流学堂,让你快人几步.你好,我是郑洪智. 大智:"小 ...

  5. Unity接入GooglePlay内购V4(源生Android方式)

    Unity接GooglePlay In-App Billing坑还是蛮多的,各种坑. 接的方式目前来看有三种: 采用Unity IAP插件,开启Unity的IAP Service 采用Android源 ...

  6. HttpWebRequest 请求非常慢 下载非常慢

    解决方案 在cookie中加入AspxAutoDetectCookieSupport=1 方法来源 如果你使用Unity进行下载 你会发现上述方法有提升但不明显,原因是Unity限制了请求并发数量,我 ...

  7. 未转变者3.20找不到服务器,Unturned未转变者3.20.14.0版本更新内容一览

    Unturned未转变者3.20.14.0版本更新内容一览.本作于近日正式更新了3.20.14.0版本,下面就一起来看看本次更新的全部内容吧. 3.20.14.0版本更新内容 此次更新将游戏引擎的版本 ...

  8. unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求

    本文节选自洪流学堂公众号技术专栏<大话Unity2019>,未经允许不可转载. 洪流学堂公众号回复log获取最新版运行时查看日志的工具. 小新:"最近我升级到Android AP ...

  9. Unity中Android API 28之后无法HTTP请求

    本文节选自洪流学堂公众号技术专栏<大话Unity2019>,未经允许不可转载. 洪流学堂公众号回复log,获取最新版运行时查看日志的工具. 小新:"最近我升级到Android A ...

最新文章

  1. php和css一样吗,php和css一样吗
  2. 多层感知机MLP、RBF网络、Hopfield网络、自组织映射神经网络、神经网络算法地图
  3. 【Kaggle-MNIST之路】CNN结构再改进+交叉熵损失函数(六)
  4. 青蛙学Linux—MySQL备份工具XtraBackup
  5. fastjson 1.1.71.android 版本发布,优化部分场景性能
  6. 将解决方案和项目放在同一目录中_借助CADENAS 3D电子目录,巴鲁夫使用CAE数据扩展其产品目录...
  7. matlab画图设置
  8. 如何使用Omni Remover Mac版释放Mac上的空间
  9. 小白R语言数据可视化进阶练习一
  10. html5在线画板菱形怎么画,使用HTML5构建一个在线画板应用
  11. 平方项知多少?平方项、分组回归与门槛模型
  12. animation中CrossFade的问题
  13. 程序员一些有意思的智力题整理
  14. 嵌入式Linux资源网站,嵌入式Linux名词及资源
  15. NVMe Zoned Namespaces (ZNS) SSDs
  16. 咏南ISAPI中间件
  17. 怎么给网页加动态背景
  18. MFC控件绘制透明png图片或者半透明图片
  19. 蓝桥杯 基础练习VIP FJ的字符串 java
  20. 关于互相帮忙投票的微信群、微信刷投票群、微信投票刷票群的详情介绍

热门文章

  1. 影子战术:将军之刃_神秘的指挥车:看战术包
  2. ElasticSearch数据库的使用简介
  3. tsung 安装及测试使用
  4. Android面试送分题:微信小程序的事件处理,年薪50W
  5. 台湾2018年虐童通报5.9万件 社会安全网被疑虚设
  6. 华为交换机常用功能配置
  7. 离线数仓——(新增用户业务指标,每日新增用户明细表,留存用户业务指标,用户留存明细表)
  8. 360免费WIFI可远程控制用户行为(种马弹shell窃取信息)
  9. mysql source 数据库_MySQL 数据库 source 命令详解及实例
  10. 无法进入系统的三星Android手机恢复联系人、短信数据并重置手机的过程