私はHttpWebRequestから移行しているので、私はHttpClientを使ってプロジェクトの拡張クラスを作成しています。HttpClient PostAsyncパラメータを正しく使用するにはどうすればよいですか?
POSTリクエストを行う際に、通常の文字列をパラメータとして送信するにはどうすればよいですか?いいえjsonまたは何か単純な文字列。
これはこれまでのようです。
static class HttpClientExtension
{
static HttpClient client = new HttpClient();
public static string GetHttpResponse(string URL)
{
string fail = "Fail";
client.BaseAddress = new Uri(URL);
HttpResponseMessage Response = client.GetAsync(URL).GetAwaiter().GetResult();
if (Response.IsSuccessStatusCode)
return Response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
else
return fail;
}
public static string PostRequest(string URI, string PostParams)
{
client.PostAsync(URI, new StringContent(PostParams));
HttpResponseMessage response = client.GetAsync(URI).GetAwaiter().GetResult();
string content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
return content;
}
}
あなたは
client.PostAsync(URI, new StringContent(PostParams));
のようにこれを見ている場合は、私はちょうど新しいStringContentを作成し、その中に文字列を渡す試み、応答が見つからない404ページを返されたことがわかります。 Post.Async()を正しく使用するにはどうすればいいですか?私は文字列またはバイト配列を送信するのですか? HttpWebRequestのをあなたが..行われ、次のPostRequest
でこの
public static void SetPost(this HttpWebRequest request, string postdata)
{
request.Method = "POST";
byte[] bytes = Encoding.UTF8.GetBytes(postdata);
using (Stream requestStream = request.GetRequestStream())
requestStream.Write(bytes, 0, bytes.Length);
}
は、どのように私は、返される文字列のネタをつかむん? –
@AleksSladeは、要求が行われているコンテキストに依存します。非同期呼び出しを行う方法の規則を適用します。 'var result = HttpClientExtension.PostRequestAsync(" URL here "、" Params Here ")'を待ちます。 – Nkosi