Код: Выделить всё
{System.ObjectDisposedException: Cannot access a closed Stream.
at System.IO.MemoryStream.EnsureNotClosed()
at System.IO.MemoryStream.CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
at Xamarin.Android.Net.AndroidMessageHandler.WriteRequestContentToOutput(HttpRequestMessage request, HttpURLConnection httpConnection, CancellationToken cancellationToken) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Xamarin.Android.Net/AndroidMessageHandler.cs:line 458
at Xamarin.Android.Net.AndroidMessageHandler.DoProcessRequest(HttpRequestMessage request, URL javaUrl, HttpURLConnection httpConnection, CancellationToken cancellationToken, RequestRedirectionState redirectState) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Xamarin.Android.Net/AndroidMessageHandler.cs:line 533
at Xamarin.Android.Net.AndroidMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Xamarin.Android.Net/AndroidMessageHandler.cs:line 375
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at MyApp.Services.HttpService.PostAsync(String url, String body, String token, Dictionary`2 headers) in C:\Users\user\Documents\temp\MyApp\MyApp\Services\HttpService.cs:line 38}
Код: Выделить всё
public async Task PostAsync(string url, string body = "", string? token = "", Dictionary headers = null)
{
HttpClient client = new();
try
{
var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = new StringContent("", Encoding.UTF8, "application/json"),
};
if (headers != null)
{
foreach (var header in headers)
{
request.Headers.Add(header.Key, header.Value);
}
}
if (token != "") request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
var result = await client.PostAsync(url, new StringContent("", Encoding.UTF8, "application/json"));
//var result = await client.SendAsync(request);
var test = await result.Content.ReadAsStringAsync();
if (result.StatusCode != HttpStatusCode.OK)
{
throw new Exception("Något gick fel");
}
return await result.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
throw ex;
}
}
Он работает безупречно, если я отлаживаю его на своем компьютере с Windows. К сожалению, у меня больше нет устройств Android, на которых можно было бы протестировать его. Я попробую эмулятор и напишу результат.
**Тот же результат на эмуляторе.
Подробнее здесь: https://stackoverflow.com/questions/765 ... ith-a-body