unity3d c# httpost 上传文件并且返回
时间: 2023-08-29 19:08:01 浏览: 42
在 Unity3D 中使用 C# 进行 HttpPost 上传文件并且返回结果,可以通过使用 `UploadHandlerRaw` 类来实现。具体实现如下:
```csharp
public IEnumerator HttpPost(string url, byte[] fileData, Action<string> callback)
{
UnityWebRequest request = new UnityWebRequest(url, "POST");
// 设置上传的文件数据
request.uploadHandler = (UploadHandler)new UploadHandlerRaw(fileData);
// 设置文件类型
request.SetRequestHeader("Content-Type", "application/octet-stream");
// 设置超时时间
request.timeout = 30;
// 发送请求
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
else
{
// 获取返回结果
string result = request.downloadHandler.text;
callback(result);
}
}
```
在上面的代码中,我们通过使用 `UploadHandlerRaw` 类来设置上传的文件数据,使用 `SetRequestHeader` 方法来设置文件类型,使用 `timeout` 属性来设置超时时间。在请求完成后,我们可以通过 `downloadHandler` 属性来获取返回结果,并通过回调函数(`Action<string>` 类型)来将结果传递出去。
需要注意的是,在使用 UnityWebRequest 发送请求时,需要使用协程来处理异步操作。因此,在上面的代码中,我们使用了 `yield return request.SendWebRequest()` 来等待请求的完成。