¿cómo puedo cargar una cadena grande (en mi caso XML con BLOB) con POST sin obtener tiempo de espera con GetResponse?C#: ¿Cómo POSTAR una cadena grande a través de WebRequest?
Cambiar el tiempo de espera ayuda, pero esto no es realmente una solución. Si el servidor está realmente muerto o el mensaje POST fue interrumpido, tengo que esperar el gran tiempo de espera extremo.
¿Alguna idea?
HttpWebRequest webRequest = null;
string response = "";
byte[] bytes = Encoding.UTF8.GetBytes(xml);
try
{
webRequest = (HttpWebRequest)WebRequest.Create("http://" + this.host + ":" + this.port);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
webRequest.Timeout = 5000;
webRequest.ContentLength = bytes.Length;
using (Stream requeststream = webRequest.GetRequestStream())
{
requeststream.Write(bytes, 0, bytes.Length);
requeststream.Close();
}
using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
{
using (StreamReader sr = new StreamReader(webResponse.GetResponseStream()))
{
response = sr.ReadToEnd().Trim();
sr.Close();
}
webResponse.Close();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
return response;
aplicación debe estar diseñado de modo que usted no tiene que fijar muy gran cantidad de datos. –
Mi opinión sobre el tema es la misma. Si ve que la "plataforma" no lo admite, intente encontrar otra forma de hacerlo. De lo contrario, utilizaría el enfoque de @Marc Gravell con la compresión gzip y el número limitado de subidas. –