Отправка образа base64 из приложения Xamarin не работает - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь отправить изображение, закодированное в базе 64, на сервер в приложении xamarin. Тот же код работает в консольном приложении, но просто не работает в моем приложении xamarin.

Вот код: это в два раза. Первый звонок для создания предмета. Затем второй вызов, чтобы добавить к нему изображение.

string Key = "";
using (var client = new HttpClient())
{
    var payloadA = "<PAYLOD>";
    var test = Encoding.ASCII.GetBytes("<USERNAME>" + ":" + "<PASSWORD>");
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(test));
    var response = client.PostAsync("<FIRST URL>", new StringContent(payloadA, Encoding.UTF8, "application/json"));
    response.Wait();
    if (response.Result.StatusCode == HttpStatusCode.Created)
    {
        var task = response.Result.Content.ReadAsStringAsync();
        task.Wait();

        Response result = JsonConvert.DeserializeObject<Response>(task.Result);
        Key = result.Key;
    }
    else
    {
        var task = response.Result.Content.ReadAsStringAsync();
        task.Wait();

        string testy = task.Result;

        throw new Exception();
    }
}
using (var client = new HttpClient())
{
    string payloadA = "{\"attachedFiles\":[{\"filename\":\"IMG_20200502_164721.jpg\",\"customfieldId\":\"customfield_10106\",\"issueKey\":\"" + Key + "\",\"content\":\"/9j/4StWRXhp ................. \"}]}";

    var test = Encoding.ASCII.GetBytes("<USERNAME>" + ":" + "<PASSWORD>");
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(test));
    var response = client.PostAsync("<SECOND URL>", new StringContent(payloadA, Encoding.UTF8, "application/json"));
    response.Wait();
    if (response.Result.StatusCode == HttpStatusCode.OK)
    {
        var task = response.Result.Content.ReadAsStringAsync();
        task.Wait();


    }
    else
    {
        var task = response.Result.Content.ReadAsStringAsync();
        task.Wait();

        string testy = task.Result;

        throw new Exception();
    }
}

Я попытался вместо этого использовать WebClient, но это то же самое.

Мой запрос работает и в почтальоне. Они просто не работают в приложении XAMARIN.

Спасибо за ваше время.

...