Как написать сообщение HTTP, отправляющее файл изображения (.jpg / .png) в Unity с помощью UnityWebRequest? - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу сделать почтовый запрос в Unity, используя UnityWebRequest. Я должен отправить изображение jpg или изображение png, и API должен ответить на него строковым сообщением или кодом int.

Как написать C# Скрипт для отправки данных по почте?

1 Ответ

1 голос
/ 12 февраля 2020

Проверьте это, я использую этот метод в течение длительного времени, и он работает для меня.

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 Этот класс содержит только некоторые необходимые для меня значения, такие как filepath, имя_файла и тип файла . Это слишком долго, дайте мне знать, если вы ничего не понимаете.

...