Lib*_*eph 116 c# asp.net http-headers dotnet-httpclient
如何为HttpClient
请求添加自定义标头?我正在使用PostAsJsonAsync
方法发布JSON.我需要添加的自定义标题是
"X-Version: 1"
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的:
using (var client = new HttpClient()) {
client.BaseAddress = new Uri("https://api.clickatell.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "xxxxxxxxxxxxxxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("rest/message", svm).Result;
}
Run Code Online (Sandbox Code Playgroud)
Lib*_*eph 172
我找到了问题的答案.
client.DefaultRequestHeaders.Add("X-Version","1");
Run Code Online (Sandbox Code Playgroud)
这应该为您的请求添加自定义标头
Chr*_*ock 56
以下是基于Anubis的答案(这是一种更好的方法,因为它不会修改每个请求的标头),但这更像是原始问题中的代码:
using Newtonsoft.Json;
...
var client = new HttpClient();
var httpRequestMessage = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://api.clickatell.com/rest/message"),
Headers = {
{ HttpRequestHeader.Authorization.ToString(), "Bearer xxxxxxxxxxxxxxxxxxxx" },
{ HttpRequestHeader.Accept.ToString(), "application/json" },
{ "X-Version", "1" }
},
Content = new StringContent(JsonConvert.SerializeObject(svm))
};
var response = client.SendAsync(httpRequestMessage).Result;
Run Code Online (Sandbox Code Playgroud)
Anu*_*bis 45
var request = new HttpRequestMessage {
RequestUri = new Uri(EnvironmentSetup.BaseAddress + "Folder"),
Method = HttpMethod.Post,
Headers = {
{ "X-Version", "1" },
{ HttpRequestHeader.Authorization.ToString(), "Basic " + EnvironmentSetup.GetAuthToken() },
{ HttpRequestHeader.ContentType.ToString(), "multipart/mixed" },
},
Content = new MultipartContent {
new ObjectContent<FolderWithDocuments>(new FolderWithDocuments {
Status = FolderStatus.Draft,
Users = new List<User> { EnvironmentSetup.User1, EnvironmentSetup.User2 },
}, new JsonMediaTypeFormatter(), "application/json"),
new ByteArrayContent(ResourceHelper.ReadResourceToByteArray("blank.pdf")) {
Headers = {
{ "Content-Type", "application/Executable" },
{ "Content-Disposition", "form-data; filename=\"test.pdf\"" },
},
},
},
};
Run Code Online (Sandbox Code Playgroud)
小智 8
类中有一个Headers
属性HttpRequestMessage
。您可以在那里添加自定义标头,这些标头将随每个 HTTP 请求一起发送。的DefaultRequestHeaders
在HttpClient
类,另一方面,设置为与每个请求一起发送报头使用该客户对象,因此得名发送默认请求头。
希望这能让事情变得更清楚,至少对于将来看到这个答案的人来说。
归档时间: |
|
查看次数: |
145732 次 |
最近记录: |