【问题标题】:Reuest.InputStream.Length is 0 and RequestType is GetRequest.InputStream.Length 为 0,请求类型为 Get
【发布时间】:2011-05-20 09:07:59
【问题描述】:

我正在尝试使用 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 总是给出“获取”和请求。 InputStream 不为空,但长度始终为 0。我无法接收字符串。

这里有什么问题?我错过了什么吗?请建议我如何解决此问题。

【问题讨论】:

    标签: asp.net xml post httpwebrequest


    【解决方案1】:

    这很奇怪,但我自己找到了解决方案,它在 web.config 中,

    当我使用 cookieless="AutoDetect" 或 cookieless="True" 时,接收器上的请求类型始终为 Get 并且 Request.InputStream.Length 为 0。当我将其设置为 false 时,一切都很好。

    到目前为止它有效,但我想稍后再挖掘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 2020-04-01
      • 2023-02-16
      • 2017-03-03
      • 2015-01-05
      • 1970-01-01
      • 2013-11-02
      • 2022-11-11
      相关资源
      最近更新 更多