UnityWebRequest.Post 会使后端报出数据读取格式错误

URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。适用于统一资源标识符(URI)的编码,也用于为"application/x-www-form-urlencoded" MIME准备数据, 因为它用于通过HTTP的请求操作(request)提交HTML表单数据。unity使用post接口提交数据之后服务器发现会出现错误的字符,中文更不行了,奇怪了很久很久,不得琪姐。
摘要由CSDN通过智能技术生成

最近在用unity和python做交互,发现了unity的一个坑:
unity使用post接口提交数据之后服务器发现会出现错误的字符,中文更不行了,奇怪了很久很久,不得琪姐。
b’This is \xe6\x88\x91\xe6\x9d\xa5\xe5\x8f\x91\xe4\xb8\x80\xe4\xba\x9b\xe4\xb8\xad\xe6\x96\x87\xe8\xaf\x95\xe8\xaf\x95\xe8\xa1\x8c\xe4\xb8\x8d\xe8\xa1\x8csome test data’

客户端 代码示意:
UnityWebRequest www = UnityWebRequest.Post(“http://127.0.0.1:8888”, “This is 我来发一些文试试行不行some test data”));
yield return www.SendWebRequest();

服务端代码示意

from http.server import HTTPServer, BaseHTTPRequestHandler
import json
import time

data = {‘result’: ‘this is a test’}
host = (‘localhost’, 8888)

class Resquest(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header(‘Content-type’, ‘application/json’)
self.end_headers()
self.wfile.write(json.dumps(data).encode())

def do_POST(self):
    datas = self.rfile.read(in
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: UnityWebRequest.PostUnity中的一个类,用于向服务器发送POST请求。它可以用于向服务器发送数据,例如表单数据、JSON数据等。使用UnityWebRequest.Post可以方便地与服务器进行通信,并获取服务器返回的数据。 ### 回答2: UnityWebrequestUnity引擎提供的一个用于网络通信的类库,其中post是其中最常用的方法之一。它是通过HTTP协议向服务器提交数据的一种方式,相比于get方法更加安全可靠。 在使用post方法时,需要向服务器发送一段特定格式数据,这段数据包含了要向服务器传递的参数以及参数的值。这些数据需要以键值对的方式组织,并使用特定的分隔符进行连接。在 UnityWebrequest.post 方法中,参数需要通过一个Dictionary<string,string>类型的参数进行传递。例如: Dictionary<string, string> postParams = new Dictionary<string, string>(); postParams["username"] = "user1"; postParams["password"] = "password1"; UnityWebRequest www = UnityWebRequest.Post("http://www.example.com/login", postParams); yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.LogError(www.error); } else { Debug.Log("Form upload complete!"); } 在上述示例中,向 http://www.example.com/login 发送了一个POST请求。参数使用了一个Dictionary<string,string>对象,其中包含了用户名和密码两个参数及其对应的值。在发送请求后,我们需要等待服务器的响应结果。如果请求成功,我们可以获取服务器返回的数据并进行处理。如果请求失败,则抛出 NetworkError或 HttpError 异常,可以根据具体的错误信息进行处理。 UnityWebrequest.postUnity引擎中一个十分强大、常用的API,具备广泛的适用性,在开发各种类型的游戏时都可以使用。 如果开发者想进行网络通信,就可以选择UnityWebrequest.post方法,实现安全、可靠、高效的数据传输。 ### 回答3: UnityWebRequest.postUnity中用于在Http协议下向远程服务器发送POST请求的API。它可以用于向服务器传递表单数据、上传文件和进行基于HTTP协议的远程调用等操作。 通过UnityWebRequest.post方法可以设置请求的URL、请求的体、请求头、超时时间等请求参数。在发送请求之后可以通过异步的方式获取响应结果,通过设置回调函数处理获得的响应结果。在处理请求的过程中,还可以根据需要设置请求的超时时间、POST方式、上传内容和返回格式等操作。 UnityWebRequest.post能够满足我们许多实际开发中的需求,比如向服务器上传文件、进行后台数据请求等。此外,UnityWebRequest.post还具备多线程操作等多种优点,可以提高网络请求的效率。 总之,UnityWebRequest.postUnity中用于进行Http协议下的POST请求的API,它可以完成许多网络请求的操作。了解和掌握这个API是Unity网络开发中的基本技能,也是开发者必不可少的技能之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值