consumir - Agregar encabezados y publicar datos en la solicitud RESTfull/HTTP en C#
consumir api rest c# (1)
Mover los encabezados antes de que funcione la solicitud Steam (según el comentario de AI W), porque la secuencia de solicitud está agregando el cuerpo.
La forma en que webrequest se implementa internamente, debe finalizar el encabezado antes de escribir el cuerpo, y una vez que esté en formato continuo, está listo para enviar.
Si observa la implementación de la solicitud web en el reflector o alguna herramienta de descompilación de este tipo, podrá ver la lógica.
Espero que esto ayude
Tengo problemas para enviar la solicitud POST en C # y parece que entendí mal algunos conceptos básicos de HTTP. Así que básicamente estoy implementando el cliente de servicio REST, que funciona de la siguiente manera:
- Hacer solicitud POST con nombre de usuario / contraseña y obtener token
- Use este token en el encabezado (Autorización: TOKEN) mientras realiza otras solicitudes GET / POST / PUT
Utilizo WebRequest
para realizar solicitudes GET (con encabezado de autorización) y está funcionando. Pero cuando uso el siguiente código para realizar solicitudes PUT, el servicio está devolviendo el mensaje "Autenticación fallida - no iniciada sesión":
String url = String.Format("{0}/{1}", AN_SERVER, app);
WebRequest theRequest = WebRequest.Create(url);
theRequest.Method = "POST";
theRequest.ContentType = "text/x-json";
theRequest.ContentLength = json.Length;
Stream requestStream = theRequest.GetRequestStream();
requestStream.Write(Encoding.ASCII.GetBytes(json), 0, json.Length);
requestStream.Close();
theRequest.Headers.Add("Authorization", authToken);
HttpWebResponse response = (HttpWebResponse)theRequest.GetResponse();
Debo estar cometiendo un error menor (al menos eso espero) al enviar la solicitud POST. Entonces, ¿qué estoy haciendo mal?
Gracias.