美文网首页
Unity上传文件失败,但是python上传就能成功

Unity上传文件失败,但是python上传就能成功

作者: 杰罗xr | 来源:发表于2022-03-19 17:37 被阅读0次

需求POST请求上传一个文件和两个字段
问题Python requests 上传能够成功,使用Unity写上传失败

抓包发现Python和Unity字段格式不同


image.png

修改写法为如下成功

BestHttp插件写法

    MultipartFormDataStream multipartFormDataStream = new MultipartFormDataStream(request);
    multipartFormDataStream.AddStreamField(new MemoryStream(Encoding.UTF8.GetBytes(user_id)),"user_id");
    multipartFormDataStream.AddStreamField(new MemoryStream(Encoding.UTF8.GetBytes(game_id)), "game_id");
    multipartFormDataStream.AddStreamField(new MemoryStream(file), "file", imageName, "image/png");

UnityWebRequest 写法

IEnumerator UnityUpload()
{
    List<IMultipartFormSection> formdatas = new List<IMultipartFormSection>();

    MultipartFormDataSection multipartFormDataSection1 = new MultipartFormDataSection("user_id", Encoding.UTF8.GetBytes(userid));
    MultipartFormDataSection multipartFormDataSection2 = new MultipartFormDataSection("game_id", Encoding.UTF8.GetBytes(gameid));
    MultipartFormFileSection multipartFormFileSection = new MultipartFormFileSection("file", File.ReadAllBytes(imagePath), "000001.png", "image/png");

    formdatas.Add(multipartFormDataSection1);
    formdatas.Add(multipartFormDataSection2);
    formdatas.Add(multipartFormFileSection);

    UnityWebRequest webRequest = UnityWebRequest.Post(UploadAddr, formdatas);

    yield return webRequest.SendWebRequest();

    if (webRequest.error == null)
    {
        Debug.Log("请求完成:"+webRequest.downloadHandler.text);
    }
    else
    {
        Debug.LogError("上传失败:"+webRequest.error);
    }

}

相关文章

网友评论

      本文标题:Unity上传文件失败,但是python上传就能成功

      本文链接:https://www.haomeiwen.com/subject/ybfndrtx.html