Dies ist das erste Mal, dass ich JSON sowie System.Net
das WebRequest
in einer meiner Anwendungen verwende. Meine Anwendung soll eine JSON-Nutzlast, ähnlich der folgenden, an einen Authentifizierungsserver senden:
{
"agent": {
"name": "Agent Name",
"version": 1
},
"username": "Username",
"password": "User Password",
"token": "xxxxxx"
}
Um diese Nutzdaten zu erstellen, habe ich die JSON.NET
Bibliothek verwendet. Wie würde ich diese Daten an den Authentifizierungsserver senden und die JSON-Antwort zurückerhalten? Folgendes habe ich in einigen Beispielen gesehen, aber keinen JSON-Inhalt:
var http = (HttpWebRequest)WebRequest.Create(new Uri(baseUrl));
http.Accept = "application/json";
http.ContentType = "application/json";
http.Method = "POST";
string parsedContent = "Parsed JSON Content needs to go here";
ASCIIEncoding encoding = new ASCIIEncoding();
Byte[] bytes = encoding.GetBytes(parsedContent);
Stream newStream = http.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
var response = http.GetResponse();
var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
var content = sr.ReadToEnd();
Dies scheint jedoch eine Menge Code zu sein, der mit der Verwendung anderer Sprachen verglichen wird, die ich in der Vergangenheit verwendet habe. Mache ich das richtig Und wie würde ich die JSON-Antwort zurückbekommen, damit ich sie analysieren kann?
Danke, Elite.
Code aktualisiert
// Send the POST Request to the Authentication Server
// Error Here
string json = await Task.Run(() => JsonConvert.SerializeObject(createLoginPayload(usernameTextBox.Text, password)));
var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
using (var httpClient = new HttpClient())
{
// Error here
var httpResponse = await httpClient.PostAsync("URL HERE", httpContent);
if (httpResponse.Content != null)
{
// Error Here
var responseContent = await httpResponse.Content.ReadAsStringAsync();
}
}
WebClient.UploadString(JsonConvert.SerializeObjectobj(yourobj))
oderHttpClient.PostAsJsonAsync