쿼리 문자열 매개 변수와 JSON 본문 (POST의 경우)을 포함하도록 .NET HttpClient.SendAsync() 요청을 설정하는 방법은 무엇입니까?.NET HttpClient가 쿼리 문자열과 JSON 본문을 POST에 추가
는// Query string parameters
var queryString = new Dictionary<string, string>()
{
{ "foo", "bar" }
};
// Create json for body
var content = new JObject(json);
// Create HttpClient
var client = new HttpClient();
client.BaseAddress = new Uri("https://api.baseaddress.com/");
var request = new HttpRequestMessage(HttpMethod.Post, "something");
// Setup header(s)
request.Headers.Add("Accept", "application/json");
// Add body content
request.Content = new StringContent(
content.ToString(),
Encoding.UTF8,
"application/json"
);
// How do I add the queryString?
// Send the request
client.SendAsync(request);
내가 본 모든 예는
request.Content = new FormUrlEncodedContent(queryString)
을 설정하지만 그때 나는 내가 필요로 무엇 이었습니까 Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString()
을 찾는까지 끝난 request.Content
['HttpRequestMessage'이있는'RequestUri처럼 'property] (https://msdn.microsoft.com/en-us/library/system.net.http.httprequestmessage.requesturi (v = vs.118) .aspx); 그것을 사용하여 쿼리 문자열을 추가하십시오 (새로운'Uri' 객체를 생성하고'RequestUri'를 설정해야 할 것 같습니다). –
@MikeMcCaughan 나는 이것을 조사해 내 endpoint + queryString 정보로'RequestUri' 속성을 다시 설정하면'HttpClient' 객체에서 전역 적으로 설정 한'HttpClient.BaseAddress'를 덮어 쓰는 것을 발견했습니다. 하지만이 방법은 내가 찾고있는 해결책으로 나를 이끌었다. –