Wie benutze ich den HttpClient PostAsync Parameter richtig?
So, ich bin arbeiten, das schreiben einer extension-Klasse für mein Projekt mit HttpClient da bin ich bewegt über den von HttpWebRequest.
Wenn du die POST-Anforderung, wie sende ich einen normalen string als parameter? Kein json oder alles nur ein einfacher string.
Und das ist, was es sieht aus wie bisher.
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;
}
}
Wenn Sie sich dies anschauen, wie
client.PostAsync(URI, new StringContent(PostParams));
Können Sie sehen, dass ich habe nur versucht, die Schaffung neuer StringContent und übergeben Sie eine Zeichenfolge in es und die Antwort zurückgegeben 404-Seite nicht gefunden.
Wie gehe ich richtig mit der Post.Async(); sende ich einen string oder byte-array? Denn mit HttpWebRequest Sie es tun würde, wie dies
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);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der
PostRequest
im folgenden ist getan..Dem nicht erfassen der Antwort von der POST.
Umgestalten zu
HttpClient
ist in Erster Linie dazu genutzt werden, um asynchrone, so betrachten die Umgestaltung zuvar result = await HttpClientExtension.PostRequestAsync("URL here", "Params Here")
Ich gearbeitet haben, die folgenden (mit dem Paket Ngonzalez.ImageProcessorCore).
Abfrage (ASP.NET Core 2 Controller):
Api - (ASP.NET Core 2 Controller):