http - 如何使用 UnityWebRequest 在 Unity 中编写发送图像文件 (.jpg/.png) 的 HTTP 帖子?
问题描述
我想在 Unity 中使用 UnityWebRequest 进行发布请求。我必须发送 jpg 图像或 png 图像,并且 api 必须以字符串消息或 int 代码响应。
如何编写 C# 脚本通过 post 发送数据?
解决方案
检查一下,我使用这种方法很长时间了,它对我有用。
public static IEnumerator CallAPIwithPostAndFileData1(string api_url, List<FileDetails> files, Action<string> callback)
{
WWWForm form = new WWWForm();
int i = 0;
foreach (FileDetails file in files)
{
i++;
UnityWebRequest localFile = UnityWebRequest.Get(@"file://" + file.filePath);
yield return localFile;
form.AddBinaryData("image[]", localFile.downloadHandler.data, file.fileName, "image/" + file.fileType);
}
UnityWebRequest request = UnityWebRequest.Post(api_url, form);
request.SetRequestHeader("Content-Type", "application/json");
request = APIHelper.setAuthToRequest(request, AuthType.BASIC);
request.SendWebRequest();
while (!request.isDone)
{
downloadProgress = request.downloadProgress * 100;
yield return null;
}
if (request.isDone && (!request.isHttpError || !request.isNetworkError))
{
callback(request.downloadHandler.text);
}
else if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
}
FileDetails
这个类只为我保存一些必要的值,比如文件路径、文件名和文件类型。这有点太长了,如果你有什么不明白的,请告诉我。
推荐阅读
- javascript - 使用复选框实现树并拖放
- sql - SqlServer 2019 使用表和标量函数进入游标
- android - 如何从套接字读取字节数组并将其转换为 android 中的位图?
- android - 共享偏好是否具有故障安全行为?
- bash - 带有双引号的 bash 变量
- javascript - 当其他函数完成时,在循环中的函数之后触发 JS
- java - 与@CircuitBreaker 一起使用时,不会调用@Recover(回退方法),一旦所有重试都用尽了
- javascript - 动画光标跟随已动画元素
- reactjs - 如何使用 react-query 获取 n 个依赖数据
- angular - 显示角度模态对话框时不必要的多个方法调用