C #: Как отправить большую строку POST через WebRequest?

как я могу загрузить большую строку (в моем случае XML с BLOB) с помощью POST без получения тайм-аута с GetResponse?

Изменение тайм-аута помогает, но на самом деле это не решение . Если сервер действительно поврежден или POST был прерван, мне нужно дождаться экстремально большого тайм-аута.

Любая идея?

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;
9
задан Wowa 15 February 2011 в 08:30
поделиться