Also ich schreibe eine Erweiterungs-Klasse für mein Projekt mit HttpClient seit ich von HttpWebRequest rübergehen.Wie verwende ich HttpClient PostAsync-Parameter richtig?
Wie kann ich bei der POST-Anfrage eine normale Zeichenfolge als Parameter senden? Kein JSON oder irgendetwas nur eine einfache Zeichenfolge.
Und so sieht es bisher aus.
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 man sich so aussehen wie
client.PostAsync(URI, new StringContent(PostParams));
können Sie sehen, dass ich gerade neuen StringContent versucht zu schaffen und einen String in quert und die Antwort zurück 404 Seite nicht gefunden. Wie verwende ich richtig Post.Async(); sende ich ein String- oder Byte-Array? Denn mit HttpWebRequest Sie es wie dieser
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);
}
Mit der Asynchron-Version wie packe ich ahold der Rückgabestring ? –
@AleksSlade hängt vom Kontext ab, in dem die Anforderung ausgeführt wird. Wenden Sie die Regeln für das Ausführen von Async-Anrufen an. 'var result = await HttpClientExtension.PostRequestAsync (" URL hier "," Params Here ")' – Nkosi