Почему POST использовать Webrequest всегда терпит неудачу, но использовать HTML-форму успеха? - PullRequest
0 голосов
/ 28 сентября 2018

Я потратил два дня на отладку, но не могу найти причину ошибки.Клиент приложения, использующий вызов сервлета WebRequest, завершился неудачно, WebException - «У операции истекло время ожидания», но когда я вызываю сервлет методом POST в html-форме, это успешно.Вот код C #:

public string PostURLRequest(string URL, string postData)
{
    try
    {
        System.Text.Encoding enc =
            System.Text.Encoding.GetEncoding("shift_jis");

        byte[] postDataBytes = System.Text.Encoding.ASCII.GetBytes(postData);

        System.Net.HttpWebRequest req =
            (System.Net.HttpWebRequest)System.Net.WebRequest.Create(URL);
        req.ProtocolVersion = System.Net.HttpVersion.Version10;
        req.Method = "POST";
        req.ReadWriteTimeout = -1;
        req.KeepAlive = false;
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = postDataBytes.Length;
        req.Timeout = 10*60*1000;

        System.IO.Stream reqStream = req.GetRequestStream();

        reqStream.Write(postDataBytes, 0, postDataBytes.Length);
        reqStream.Close();

        System.Net.WebResponse res = req.GetResponse();//----------> THROW EXCEPTION HERE
        System.IO.Stream resStream = res.GetResponseStream();

        System.IO.StreamReader sr = new System.IO.StreamReader(resStream, enc);
        String text = sr.ReadToEnd();

        sr.Close();
        return text;
    }
    catch(System.Net.WebException ex)
    {
        if (ex.Status == System.Net.WebExceptionStatus.Timeout)
        {
            Console.WriteLine("Error: {0}", ex.Message);
        }
        return "NG";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...