使用Post上传数据时,碰到乱码问题,总结一下:

Post上传数据:

 using (UnityWebRequest request = UnityWebRequest.Post(url, data)){request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");yield return request.SendWebRequest();if (request.result == UnityWebRequest.Result.Success){Debug.Log("上传成功!");uploadSuccess?.Invoke();}     }

上面的代码:Post方法会对data数据进行URL编码。
服务端如果没有进行URL解码话,打印出的结果里有%(特殊字符和中文无法正常显示)

UnityWebRequest.Post源码

解决方案:不进行URL编码,或服务端进行URL解码

1.使用PUT,方法设置为POST

因为Put方法没有进行URL编码
using (UnityWebRequest request = UnityWebRequest.Put(url, data))
{//方法改为POSTrequest.method = UnityWebRequest.kHttpVerbPOST;   request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");    yield return request.SendWebRequest();if (request.result == UnityWebRequest.Result.Success){Debug.Log("上传成功!");uploadSuccess?.Invoke();}
}

2.使用更低级的API:自己控制数据

IEnumerator UpLoadTexture3(string data)
{    byte[] databyte = Encoding.UTF8.GetBytes(data);var _request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST);_request.uploadHandler = new UploadHandlerRaw(databyte);_request.downloadHandler = new DownloadHandlerBuffer();_request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");yield return _request.SendWebRequest();if (request.result == UnityWebRequest.Result.Success){Debug.Log("上传成功!");uploadSuccess?.Invoke();}     }

3.服务端使用URL解码也可以

 UnityWebRequest自带URL编码和解码,escape:转义string str = UnityWebRequest.EscapeURL(data);Debug.Log(UnityWebRequest.UnEscapeURL(str));

额外说点其他的:

上传本地文件:使用低级API非常方便

 IEnumerator UpLoadTexture(string localPath){string fileName = Path.GetFileNameWithoutExtension(localPath);//url中补充上传的文件名var request = new UnityWebRequest(url + fileName, UnityWebRequest.kHttpVerbPOST);request.uploadHandler = new UploadHandlerFile(localPath);yield return request.SendWebRequest();if (request.result != UnityWebRequest.Result.Success){Debug.LogError(request.error);}else{Debug.Log("upload success");}}

UnityWebRequest.Post问题相关推荐

  1. unity3d 切换网络_Unity3d新网络请求方式UnityWebRequest详解

    Unity将要逐步放弃www网络请求api,新的api请求方式来临:UnityWebRequestThe,也正是本篇文章要给大家介绍的重点,那就是UnityWebRequestThe的使用详解. 旧的 ...

  2. unitywebrequest本地加载_Unity AudioSource加载本地.mp3文件/UnityWebRequest

    关键字:  Unity AudioSource本地Mp3文件加载 UnityWebRequestMultimedia.GetAudioClip() 新版本api UnityWebRequest.Get ...

  3. [专栏精选]UnityWebRequest详解

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

  4. Unity使用UnityWebRequest实现本地日志上传到web服务器

    一.前言 Unity项目开发中,遇到bug的时候,我们一般是通过日志来定位问题,所以写日志到本地文件,或者把日志文件上传到web服务器这样的功能就很必要了.下面就介绍下如何实现日志写入本地文件和上传本 ...

  5. UnityWebRequest加载音频

    Unity 官方API:Networking.UnityWebRequestMultimedia-GetAudioClip - Unity 脚本 API using UnityEngine; usin ...

  6. Unity 最新UnityWebRequest下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享

    Unity 最新UnityWebRequest下载网络资源,支持断点续传.多文件同时下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享 显示网速图片 附上案例链接 可下载 https://do ...

  7. Unity 使用UnityWebRequest问题小结

    UnityWebRequest是自带的下载资源的api,优点显而易见:封装好,简单用,兼容性跨平台非常好.缺点也显而易见:可拓展性差 下载小文件通常使用下面的方法: public IEnumerato ...

  8. Unity用UnityWebRequest和 BestHttp的GET和POST表单提交,与php交互

    目录 在unity2021中,WWW的资源加载方式过时了,新的方法为UnityWebRequest BestHttp的Get方式和Post方式 部分API 在unity2021中,WWW的资源加载方式 ...

  9. UnityWebRequest断点下载文件

    本文将运用UnityWebRequest来进行文件的断点下载. 断点下载顾名思义,就是在程序退出或者暂定下载把已经下载好的数据存储起来,在下一次下载时接着上一次开始下载,不需要重新下载,既节省时间又节 ...

  10. UnityWebRequest 下载服务器图片显示红色问号解决方案

    unity版本:2019.4.31f1c1 问题描述:使用UnityWebRequest下载服务器图片放到UI上,图片不显示,显示一个红色的问号. 如图: 问号是一个8X8的图,unity自带的图片, ...

最新文章

  1. 原理+实战掌握SQL注入方法
  2. netflow报文格式与数据处理流程分析_RTK、三维激光扫描、无人机倾斜摄影在大比例尺地形图测绘的对比分析...
  3. openai-gpt_GPT-3报告存在的问题
  4. .Net Core 3.0 IdentityServer4 快速入门
  5. 【C#程序设计】教学讲义——第三章:C#语言基础
  6. ggplot2绘图如何根据一个变量即区分颜色又区分深浅?
  7. hyperworks安装教程linux,HyperWorks安装说明.ppt
  8. CSS word-wrap强制换行截断长字符串
  9. Go语言之map练习
  10. 新型人肉搜索Ark将完胜谷歌?
  11. 怎样修改用户的计算机配置文件,计算机本地用户配置文件如何迁移至域账户
  12. python计算iv值_大数据技术 python计算IV值及使用
  13. dex字符串解密_[原创]通过CTF学习Android漏洞(炸弹引爆+dex修复)
  14. ERROR [BD 41-237]
  15. Win10 时间与Internet时间同步超时
  16. cf19B Checkout Assistant (01背包_好题)
  17. Oracle递归的实现
  18. 爆款小程序是怎么炼成的
  19. elasticsearch 生产级别深度优化
  20. 计算机桌面图标乱码,教您软件乱码怎么修复

热门文章

  1. CenterNet: Keypoint Triplts for Object Detection 论文阅读笔记
  2. linux云计算架构师,springcloud视频教程
  3. mklink命令——目录的“快捷方式”
  4. windows下 bat脚本合并多文档csv数据
  5. 动态的Objective-C——关于消息机制与运行时的探讨
  6. 我们所知道的地线到底有什么作用
  7. 编程语言中,循环变量通常都用 i?你知道为什么吗?
  8. QlExpress表达式介绍(一)
  9. 3D模型代下【淘宝店3D模型代下渠道】解密
  10. 【推荐算法】从零开始做推荐(二)——TopK推荐的评价指标,计算原理与样例