我想在 Unity 中使用 UnityWebRequest 进行发布请求。我必须发送 jpg 图像或 png 图像,并且 api 必须以字符串消息或 int 代码响应。
如何编写 C# 脚本通过 post 发送数据?
我想在 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
这个类只为我保存一些必要的值,比如文件路径、文件名和文件类型。这有点太长了,如果你有什么不明白的,请告诉我。