首页 新闻 会员 周边

求助..Web请求时报 "远程服务器返回错误: (411) 所需的长度 "异常..

0
悬赏园豆:5 [已解决问题] 解决于 2015-06-09 14:22

以下是我发起请求的代码,

运行到WebResponse response = request.GetResponse();

这句时报异常,内容是

 

远程服务器返回错误: (411) 所需的长度

 

麻烦大家帮我看下是哪里的问题,谢谢了.

(备注:去掉添加Header的那两行也没效果)

 

 public static void SetSessionID(string url)
        {
            Uri uri = new Uri(url);
            WebRequest request = WebRequest.Create(uri);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Headers.Add("Accept-Language", "zh-cn");
            request.Headers.Add("Accept-Encoding", "gzip,deflate");
            

            WebResponse response = request.GetResponse();

            foreach (string item in response.Headers.Keys)
            {
                if (item == "Set-Cookie")
                {
                    string[] data = response.Headers.GetValues(item);
                    foreach (string d in data)
                    {
                        if (d.ContainsUL("SessionID"))
                        {
                            SessionID = d;
                            return;
                        }
                    }
                }
            }

 

 
hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2015-06-08 18:11
< >
分享
最佳答案
3

这是由于IIS7中POST请求限制的原因造成的,在IIS7中站点被以POST方式请求时,必须要求传递参数,如果调用的API无须传递参数,那么请加上一句即可解决411异常.           

request.ContentLength = 0;

hexllo | 菜鸟二级 |园豆:318 | 2015-06-09 14:22

666.解决问题了

程序猫与编程狗 | 园豆:200 (初学一级) | 2015-11-17 01:08
其他回答(1)
0

POST改为GET试试。

如果还是不行,修改配置文件中的MaxResponseLength再重启然后试一下。

收获园豆:5
JeffWong | 园豆:2328 (老鸟四级) | 2015-06-08 18:23

谢谢您的回答,加上一句            request.ContentLength = 0;就可以了.

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2015-06-09 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册