Necesito obtener datos json de un dominio externo. Usé webrequest para obtener la respuesta de un sitio web. Aquí está el código:
var request = WebRequest.Create(url);
string text;
var response = (HttpWebResponse) request.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
text = sr.ReadToEnd();
}
¿Alguien sabe por qué no puedo obtener los datos json?
c#
.net
json
webrequest
h3n
fuente
fuente
using (var response = request.GetResponse()){ ... }
. Puede que no resuelva el problema, pero evita la pérdida de recursos.Respuestas:
Debe solicitar explícitamente el tipo de contenido.
Agrega esta línea:
En el lugar apropiadorequest.ContentType = "application/json; charset=utf-8";
fuente
Accept
encabezado, pero el servidor puede ignorarlo por otras razones.Algunas API quieren que proporciones el encabezado "Aceptar" apropiado en la solicitud para obtener el tipo de respuesta deseado.
Por ejemplo, si una API puede devolver datos en XML y JSON y desea obtener el resultado JSON, deberá establecer la
HttpWebRequest.Accept
propiedad en "application / json" .HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUri); httpWebRequest.Method = WebRequestMethods.Http.Get; httpWebRequest.Accept = "application/json";
fuente
requestUri
Ie localhost / api / product / 123WebRequest
stackoverflow.com/questions/3279888/…