그래서 HttpWebRequest에서 이전 중이므로 HttpClient를 사용하여 내 프로젝트의 확장 클래스를 작성하고 있습니다.HttpClient PostAsync 매개 변수를 올바르게 사용하려면 어떻게해야합니까?
POST 요청을 할 때 매개 변수로 일반 문자열을 보내려면 어떻게해야합니까? 아니 json 또는 아무것도 간단한 문자열.
그리고 이것은 지금까지와 같이 보입니다. 당신이
client.PostAsync(URI, new StringContent(PostParams));
처럼이 보면
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;
}
}
당신은 그냥 새로운 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