Запрос на исправление C # HttpClient с телом?C#

Место общения программистов C#
Ответить
Anonymous
 Запрос на исправление C # HttpClient с телом?

Сообщение Anonymous »

Я пытаюсь отправить запрос с помощью http-клиента. Мне нужно добавить тело запроса и передать параметры. У меня есть код, основанный на HTTP-запросе, но сейчас он не работает:

Код: Выделить всё

httpClient.BaseAddress = new Uri(url);
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var value = JsonConvert.SerializeObject(obj);
var content = new StringContent(value, Encoding.UTF8, "application/json");
**var request = new HttpRequestMessage(new HttpMethod("PATCH"), url + value);**
var response = await httpClient.SendAsync(request);
string Path = response.RequestMessage.RequestUri.AbsolutePath.ToString();
Success = response.IsSuccessStatusCode;
Моя проблема заключается в выделенной жирным шрифтом части кода. Мне нужно иметь возможность передать эту часть тела запроса.
Текущий ответ:

Код: Выделить всё

{StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Transfer-Encoding: chunked
Date: Tue, 29 Mar 2022 18:22:37 GMT
Server:
}}
Пока не удалось найти рабочие фрагменты кода для PATCH с телом. Я даже пробовал просто сделать POST.
Я также пробовал это:

Код: Выделить всё

//httpClient.BaseAddress = new Uri(url);
//httpClient.DefaultRequestHeaders.Accept.Clear();
//httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//var s = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat };
//var content = JsonConvert.SerializeObject(obj, s);
//var request = new HttpRequestMessage(new HttpMethod("PATCH"), url);
//request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
//var response = await httpClient.SendAsync(request);
//var responseString = await response.Content.ReadAsStringAsync();
//string Path = response.RequestMessage.RequestUri.AbsolutePath.ToString();
Однако я заметил, что столкнулся здесь с той же проблемой, что и раньше. Это не добавление тела к запросу. Я его обнуляю, но никогда не передаю тело. Поэтому мне нужно передать тело запроса.

Подробнее здесь: https://stackoverflow.com/questions/716 ... -with-body
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»