반응형
Httpclient 요청에 대한 사용자 정의 헤더
HttpClient
요청에 커스텀 헤더를 어떻게 추가 합니까? PostAsJsonAsync
JSON을 게시하는 방법을 사용 하고 있습니다. 추가해야 할 맞춤 헤더는
"X-Version: 1"
이것이 내가 지금까지 한 일입니다.
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;
}
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\"" },
},
},
},
};
내 질문에 대한 답을 찾았습니다.
client.DefaultRequestHeaders.Add("X-Version","1");
요청에 맞춤 헤더를 추가해야합니다.
다음은 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.Access.ToString(), "application/json" },
{ "X-Version", "1" }
},
Content = new StringContent(JsonConvert.SerializeObject(svm))
};
var response = client.SendAsync(httpRequestMessage).Result;
클래스 에는 Headers
속성 이 있습니다 HttpRequestMessage
. 거기에 사용자 정의 헤더를 추가 할 수 있으며, 각 헤더는 HTTP 요청과 함께 전송됩니다. 반면 DefaultRequestHeaders
에 HttpClient
클래스 의 는 해당 클라이언트 객체를 사용하여 전송 된 각 요청과 함께 헤더가 전송되도록 설정하므로 기본 요청 헤더 라는 이름이 설정 됩니다.
Hope this makes things more clear, at least for someone seeing this answer in future.
참고URL : https://stackoverflow.com/questions/35907642/custom-header-to-httpclient-request
반응형
'IT story' 카테고리의 다른 글
Xcode에서 경고를 억제하는 방법이 있습니까? (0) | 2020.07.25 |
---|---|
Visual Studio에서 "코드 4로 종료 된 xcopy"가 표시 될 때 잘못된 문제 (0) | 2020.07.25 |
메소드 목록을 표시하는 Visual Studio 창 (0) | 2020.07.25 |
요청시 URL로 최대 재시도 횟수 초과 (0) | 2020.07.25 |
약속을 위해 루프를 작성하는 올바른 방법. (0) | 2020.07.25 |