POST-запрос дает неправильный ответ - PullRequest
0 голосов
/ 23 января 2020

Это код, который отправляет фотографии на сервер из Unity. Мне нужно отправить:

  • фото в виде байта64
  • тип файла в виде строки

это ответ для моего кода:

$_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 Ответ

1 голос
/ 23 января 2020

Для файла вы должны использовать другой конструктор 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}"));

Также см. Пример в Отправка формы на HTTP-сервер (POST)


Примечание: напечатано на телефоне так нет шансов проверить, но я надеюсь, что идея станет ясной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...