HttpWebRequest / HttpResponse: Comment envoyer des données dans la réponse?
-
20-09-2019 - |
Question
J'ai un client et un serveur.
Du côté client je:
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create("http://localhost/fa/Default.aspx");
request.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(GetSAMLRequestB64());
request.ContentType = "text/xml";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
Du côté du serveur je:
public void ProcessRequest(HttpContext httpContext)
{
HttpResponse response = httpContext.Response;
response.Clear();
response.BufferOutput = true;
response.StatusCode = 200; // HttpStatusCode.OK;
response.Write("Hello");
response.ContentType = "text/xml";
response.End();
}
Le client reçoit la réponse à la StatusCode
correcte. Bien que, si je (int)response.ContentLength;
sur le client je reçois 0. Je ne peux pas lire la chaîne « Bonjour » après avoir reçu la réponse (côté client).
La solution
Peut-être le réglage de type de contenu avant l'écriture réelle ou rinçage du flux aiderait.
Autres conseils
Vous n'avez pas défini ContentLength sur le serveur. Peut-être que cela aiderait?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow