Esta es la primera vez que uso JSON System.Net
y WebRequest
en cualquiera de mis aplicaciones. Se supone que mi aplicación envía una carga útil JSON, similar a la que se muestra a continuación, a un servidor de autenticación:
{
"agent": {
"name": "Agent Name",
"version": 1
},
"username": "Username",
"password": "User Password",
"token": "xxxxxx"
}
Para crear esta carga útil, utilicé la JSON.NET
biblioteca. ¿Cómo enviaría estos datos al servidor de autenticación y recibiría su respuesta JSON? Esto es lo que he visto en algunos ejemplos, pero sin contenido JSON:
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();
Sin embargo, esto parece ser mucho código comparado con el uso de otros lenguajes que he usado en el pasado. ¿Estoy haciendo esto correctamente? ¿Y cómo obtendría la respuesta JSON para poder analizarla?
Gracias, Elite.
Código actualizado
// 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))
oHttpClient.PostAsJsonAsync