URL ответа возвращает предыдущий URL изображения Imgur вместо текущего URL изображения - PullRequest
1 голос
/ 25 октября 2019

Я создал новый проект Unity, который использует C # и System.Net для доступа к API Imgur. Я могу загружать изображения в свое приложение из любой точки мира и загружать скриншоты в Imgur через идентификатор клиента моего нового приложения. Я могу получить достаточное количество данных ответа при успешной загрузке, но URL-адрес в ответе всегда устарел на 1. Если я только что загрузил Снимок экрана D, URL-адрес, который я получу, будет ссылаться на Снимок экрана C,и т. д.

Вот как выглядят данные ответов:

enter image description here

Это результат, который я имеюПерепутал все попытки, включая использование w.UploadValuesAsync() и попытки анонимной и OAuth2 (без обратного вызова) версий приложений Imgur.

Вот основная часть моего кода, полученная отсюда .

public void UploadThatScreenshot()
{
    StartCoroutine(AppScreenshotUpload());
}

IEnumerator AppScreenshotUpload()
{
    yield return new WaitForEndOfFrame();
    ScreenCapture.CaptureScreenshot(Application.persistentDataPath + filename);

    //Make sure that the file save properly
    float startTime = Time.time;
    while (false == File.Exists(Application.persistentDataPath + filename))
    {
        if (Time.time - startTime > 5.0f)
        {
            yield break;
        }
        yield return null;
    }

    //Read the saved file back into bytes
    byte[] rawImage = File.ReadAllBytes(Application.persistentDataPath + filename);

    //Before we try uploading it to Imgur we need a Server Certificate Validation Callback
    ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback;

    //Attempt to upload the image
    using (var w = new WebClient())
    {
        string clientID = "a95bb1ad4f8bcb8";
        w.Headers.Add("Authorization", "Client-ID " + clientID);
        var values = new NameValueCollection
         {
             { "image", Convert.ToBase64String(rawImage) },
             { "type", "base64" },
         };

        byte[] response = w.UploadValues("https://api.imgur.com/3/image.xml", values);
        string returnResponse = XDocument.Load(new MemoryStream(response)).ToString();

        Debug.Log(returnResponse);
    }
}

Почему URL, который я получаю от w.UploadValues(...), всегда отстает на один?

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