Reuest.InputStream.Length равен 0, а RequestType равен Get - PullRequest
2 голосов
/ 20 мая 2011

Я пытаюсь использовать httpwebrequest для отправки простой XML-строки на веб-страницу другого веб-сервера в ASP.NET.

Вот пример кода:

 public static bool Send()
 {
    string xml = "<Root><SEQNO>7</SEQNO></Root>";
    Byte[] bytes = System.Text.Encoding.UTF8.GetBytes(xml);
    HttpWebRequest objWebRequest = (HttpWebRequest)WebRequest.Create("Url");
    objWebRequest.ContentType = "text/xml";
    objWebRequest.Method = WebRequestMethods.Http.Post;
    objWebRequest.Timeout = 10000;
    objWebRequest.ContentLength = bytes.Length;

    Stream objRequestStream = null;
    objRequestStream = objWebRequest.GetRequestStream();
    objRequestStream.Write(bytes, 0, bytes.Length);
    objRequestStream.Close();

    HttpWebResponse objWebResponse = (HttpWebResponse)objWebRequest.GetResponse();

    if (objWebResponse.StatusCode == HttpStatusCode.OK)
    {
        objWebResponse.Close();
        return true;

    }
    else
    {
        return false;
    }
  }

Этот код работает нормально, но на странице, где он публикуется, я проверяю Request.RequestType, который всегда дает «Get» и запрос.InputStream не равно нулю, но его длина всегда равна 0. Я не могу получить строку.

Что здесь не так?Я что-то пропустил?Пожалуйста, предложите, как я могу решить эту проблему.

1 Ответ

1 голос
/ 30 мая 2011

Это странно, но я сам нашел решение, оно в web.config,

Когда я использую cookieless = "AutoDetect" или cookieless = "True", у меня всегда был тип запроса на приемнике, равный Get и Request.InputStream.Length, равнялся 0. Когда я установил значение false, все в порядке.

Пока что это сработало, но я бы хотел поговорить об этом позже.

...