我正在嘗試使用 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:'未找到',版本:1.1,內容:System.Net.Http.StreamContent,標題:{ 傳輸編碼:分塊日期:2022 年 3 月 29 日星期二 18:22:37 GMT服務器: }}
到目前為止,無法找到帶有正文的 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();
但是,我注意到我在這里遇到了和以前一樣的問題。它沒有將正文添加到請求中。我將它無效,但從不通過身體。所以我需要在請求中傳遞正文。
uj5u.com熱心網友回復:
您需要做的就是設定的Content屬性HttpRequestMessage:
var request = new HttpRequestMessage(HttpMethod.Patch, url) {
Content = new StringContent(value, Encoding.UTF8, "application/json")
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452577.html
上一篇:整數乘法表現奇怪
