반응형
HttpClient를 사용하여 데이터를 게시하는 방법은 무엇입니까?
내가 가지고 이 Nuget에서 HttpClient를합니다.
데이터를 얻으려면 다음과 같이합니다.
var response = await httpClient.GetAsync(url);
var data = await response.Content.ReadAsStringAsync();
하지만 문제는 데이터를 게시하는 방법을 모른다는 것입니다. 나는 POST 요청을 보낼 수 있고 그 안에 이러한 값을 보내 comment="hello world"
와 questionId = 1
. 이것들은 클래스의 속성이 될 수 있습니다.
업데이트HttpContent
게시 방법이 필요하므로 해당 값을 추가하는 방법을 모르겠습니다 .httClient.Post(string, HttpContent);
다음을 사용해야합니다.
await client.PostAsync(uri, content);
그런 것 :
var comment = "hello world";
var questionId = 1;
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("comment", comment),
new KeyValuePair<string, string>("questionId", questionId)
});
var myHttpClient = new HttpClient();
var response = await myHttpClient.PostAsync(uri.ToString(), formContent);
게시 후 응답을 받아야하는 경우 다음을 사용해야합니다.
var stringContent = await response.Content.ReadAsStringAsync();
도움이되기를 바랍니다;)
이것을 사용해보십시오 :
using (var handler = new HttpClientHandler() { CookieContainer = new CookieContainer() })
{
using (var client = new HttpClient(handler)
{ BaseAddress = new Uri("site.com") })
{
//add parameters on request
var body = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("test", "test"),
new KeyValuePair<string, string>("test1", "test1")
};
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "site.com");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded; charset=UTF-8"));
client.DefaultRequestHeaders.Add("Upgrade-Insecure-Requests", "1");
client.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
client.DefaultRequestHeaders.Add("X-MicrosoftAjax", "Delta=true");
//client.DefaultRequestHeaders.Add("Accept", "*/*");
client.Timeout = TimeSpan.FromMilliseconds(10000);
var res = await client.PostAsync("", new FormUrlEncodedContent(body));
if (res.IsSuccessStatusCode)
{
var exec = await res.Content.ReadAsStringAsync();
Console.WriteLine(exec);
}
}
}
UploadStringAsync 메서드 사용 :
WebClient webClient = new WebClient();
webClient.UploadStringCompleted += (s, e) =>
{
if (e.Error != null)
{
//handle your error here
}
else
{
//post was successful, so do what you need to do here
}
};
webClient.UploadStringAsync(new Uri(yourUri), UriKind.Absolute), "POST", yourParameters);
참고 URL : https://stackoverflow.com/questions/20005355/how-to-post-data-using-httpclient
반응형
'IT TIP' 카테고리의 다른 글
명령 줄 도구를 사용하여 파일의 줄 길이 계산 (0) | 2020.12.03 |
---|---|
배열에 다음이 포함 된 경우 각도 표현식 (0) | 2020.12.03 |
VectorDrawables srcCompat를 사용하는 Android Selector Drawable (0) | 2020.12.03 |
거친 그레이 스케일 알고리즘 사용에 문제가 있습니까? (0) | 2020.12.03 |
사용자 지정 Maven 2 속성에 대한 기본값 설정 (0) | 2020.12.03 |