Nugetから this HttpClientを入手しました。
データを取得したいときは、次のようにします。
var response = await httpClient.GetAsync(url);
var data = await response.Content.ReadAsStringAsync();
しかし、問題は、データを投稿する方法がわからないことです?投稿リクエストを送信し、その中に次の値を送信する必要があります:comment="hello world"
およびquestionId = 1
。これらはクラスのプロパティになる可能性がありますが、わかりません。
Updatepostメソッドで必要なため、これらの値を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);
}
}
}