Я пытаюсь отправить изображение, закодированное в базе 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.
Спасибо за ваше время.