POST请求给出错误的响应

时间:2020-01-23 16:14:39

标签: c# unity3d post

这是将照片从Unity发送到服务器的代码。 我需要发送:

  • 照片为byte64
  • 文件类型为字符串

这是我的代码的响应:

$_POST = []

$_FILES = [
    0 => [
        'name' => 'target_file'
        'type' => 'application/octet-stream'..
    ]
    1 => [
        'name' => 'jpg'
        'type' => 'text/plain'...
    ]
]

我需要获得:

$_POST = [
    'type_object' => 'jpg'
]
$_FILES = [
    'target_file' => [
        'name' => 'tt3.jpg'
        'type' => 'image/jpeg'..
    ]
]

这是我的代码:

// photo is saved to Texture2D tex 
bytes = tex.EncodeToJPG();

List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
//form1 = target_file
formData.Add(new MultipartFormFileSection(form1, bytes)); 

//form2 = type_object
//req2 = "jpg"
formData.Add(new MultipartFormFileSection(form2, req2)); 
//siteAddress - "https://api...
UnityWebRequest www = UnityWebRequest.Post(siteAddress, formData);
www.chunkedTransfer = false;

yield return www.SendWebRequest();

1 个答案:

答案 0 :(得分:1)

对于文件,您必须使用MultipartFormFileSection的其他构造函数,并另外传递表单名和内容类型。像

// form1 = "ttf3"
// req2 = "jpg"
formData.Add(new MultipartFormFileSection("target_file", bytes, $"{form1}.{req2}", "image/jpg"));

通过将第二个文件设为MultipartFormFileSection,将其视为具有字符串内容jpg的附加文件。

对于简单的字符串值,您宁愿使用MultipartFormDataSection。像

// req2 = "jpg"
formData.Add(new MultipartFormDataSection($"type_object={req2}"));

另请参见Sending a form to an HTTP server (POST)

中的示例

注意:请在电话上键入内容,因此没有机会进行测试,但我希望这个主意会清楚