当前位置:编程学习 > C#/ASP.NET >>

注册163邮箱时发生远程服务器返回错误(417错误)

--------------------编程问答-------------------- 大神们帮帮忙哦。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 请知道的呢? --------------------编程问答-------------------- req.Accept="application/json, text/javascript, */*";

把这句去掉。。。估计返回Gzip压缩的流了。 --------------------编程问答--------------------
引用 5 楼 fangxinggood 的回复:
req.Accept="application/json, text/javascript, */*";

把这句去掉。。。估计返回Gzip压缩的流了。

去掉也不行哦。。。 --------------------编程问答--------------------
引用 5 楼 fangxinggood 的回复:
req.Accept="application/json, text/javascript, */*";

把这句去掉。。。估计返回Gzip压缩的流了。

会不会是cookie的问题呢? --------------------编程问答-------------------- 我现在在post的那段代码加上了这一句不会产生那个问题了.
req.ServicePoint.Expect100Continue=false;
但返回的内容是:
{message:"fail"} --------------------编程问答-------------------- 抓包什么情况? --------------------编程问答-------------------- 对比了下cookie有所不同,我觉得可能是cookie的问题。
--------------------编程问答-------------------- 这个是正常的post抓包
x-requested-with: XMLHttpRequest
Accept-Language: zh-cn
Referer: http://reg.email.163.com/mailregAll/reg0.jsp?from=163mail_right
Accept: application/json, text/javascript, */*
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS86335; .NET4.0C; 

TheWorld)
Host: reg.email.163.com
Content-Length: 127
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: 

mailsync=ade604ff2863a74942f20e08646826aded619e701a972f32c7403739eb12149b154ead8647b3dc44a8dc42bce9

7830b5; __ntes__test__cookies=1309850229500; USERTRACK=116.29.59.224.1309707119404909; 

_ntes_nnid=8be4e7accb4d5e22c87efadac3fb2ff8,0; _ntes_nuid=8be4e7accb4d5e22c87efadac3fb2ff8; 

Province=020; City=020; 

P_INFO=ioriliao@163.com|1309838376|0|mail163|11&20|jis&1309805738&blog#gud&441700#02|&0; 

MAIL163_SSN=ioriliao; JSESSIONID=bacB2jYxr7SgW7k7Yj5dt; SID=709ae4c7-fd80-4e4f-91ca-27332b85aadc; 

NTES_SESS=JmOIwHv0M0JsxzpsJCp0Vd6hcvYX3H031RiusyhWiydRx19LOxv9563MHOFxFw1tyi1baenO7bCrIN.1thq1ESHoN

4Za1TZ7hi8iNjNtzGwJiaYoKpdfOcFb86B2oH8Gd; S_INFO=1309838376|0|2&30##|ioriliao; 

mail_host=g1a197.mail.163.com --------------------编程问答-------------------- 有丢失cookie的情况吗? --------------------编程问答--------------------
引用 12 楼 fangxinggood 的回复:
有丢失cookie的情况吗?

这个我也不是很清楚,不过我对比了我程序post抓的包和我在网站上post抓的包的cookie是不同的,我的cookie很短的。这是什么情况呢。
谢谢大神的热心帮助。 --------------------编程问答-------------------- .net 4.0以下,cookie中domain和提交的域名不符时有丢失cookie的bug。

--------------------编程问答--------------------
引用 14 楼 fangxinggood 的回复:
.net 4.0以下,cookie中domain和提交的域名不符时有丢失cookie的bug。

啊?这乍办呢? --------------------编程问答-------------------- 网上搜搜有解决方案,有一种你可以直接从 Response.Headers["SetCookie"] 里把所有cookie取出来,去掉domain和path,重新组合成字符串,再直接放到下一次 Request.Headers.Add("Cookie", cookie字符串) 这样。不过为了确认是这个问题导致的,你可以抓包看看上一次Response结果里的Set-Cookie是否有丢失现象。 --------------------编程问答-------------------- 我软件时的cookie情况
GET注册页面时没有cookie
这个是GET验证码时的cookie
JSESSIONID=abcpb3WQZtaZngjFUW6dt
这个是POST注册信息时的CO
JSESSIONID=abcpb3WQZtaZngjFUW6dt

直接网站操作的cookie情况:
GET注册页面时没有cookie
USERTRACK=116.29.59.224.1309707119404909; _ntes_nnid=8be4e7accb4d5e22c87efadac3fb2ff8,0; _ntes_nuid=8be4e7accb4d5e22c87efadac3fb2ff8; Province=020; City=020; P_INFO=ioriliaotest1@163.com|1309850203|0|mail163|00&99|null&null&null#gud&441700#10|&0; MAIL163_SSN=ioriliaotest1; mailsync=ade604ff2863a74942f20e08646826aded619e701a972f32c7403739eb12149b154ead8647b3dc44a8dc42bce97830b5; __ntes__test__cookies=1309850283328; SID=709ae4c7-fd80-4e4f-91ca-27332b85aadc; NTES_SESS=pq37yHFxvXYcSpb1TVQeMXw.VuVj0UrT2BAqBPNlwsTTlwr82lQrsy19Y2XlXDw4UDVFiENm4fKZ5ihIUCOdw7NUzwmcJun7Zkq8Tm7crnrNUdkF5_ZBAZLico9iU1XFP; S_INFO=1309850203|0|2&10##|ioriliaotest1; mail_host=g6a70.mail.163.com; JSESSIONID=bacB2jYxr7SgW7k7Yj5dt

这个是GET验证码时的cookie
__ntes__test__cookies=1309850736906; USERTRACK=116.29.59.224.1309707119404909; _ntes_nnid=8be4e7accb4d5e22c87efadac3fb2ff8,0; _ntes_nuid=8be4e7accb4d5e22c87efadac3fb2ff8; Province=020; City=020; P_INFO=ioriliaotest1@163.com|1309850203|0|mail163|00&99|null&null&null#gud&441700#10|&0; MAIL163_SSN=ioriliaotest1; mailsync=ade604ff2863a74942f20e08646826aded619e701a972f32c7403739eb12149b154ead8647b3dc44a8dc42bce97830b5; SID=709ae4c7-fd80-4e4f-91ca-27332b85aadc; NTES_SESS=pq37yHFxvXYcSpb1TVQeMXw.VuVj0UrT2BAqBPNlwsTTlwr82lQrsy19Y2XlXDw4UDVFiENm4fKZ5ihIUCOdw7NUzwmcJun7Zkq8Tm7crnrNUdkF5_ZBAZLico9iU1XFP; S_INFO=1309850203|0|2&10##|ioriliaotest1; mail_host=g6a70.mail.163.com; JSESSIONID=bacB2jYxr7SgW7k7Yj5dt

是不是表明了我程序时cookie的丢失呢? --------------------编程问答-------------------- 这样没东西出来,表示什么呢?
MessageBox.Show(resp.Headers["SetCookie"]); --------------------编程问答-------------------- resp.Cookies = cookie.GetCookies(req.RequestUri);

这句话多余。 --------------------编程问答--------------------
仍然是没搞定 --------------------编程问答--------------------
仍然没解决。。。。 --------------------编程问答-------------------- 我看到cookie里有jsessionid字段,会不会是这个问题呢? --------------------编程问答--------------------
还没搞定,郁闷啊。 --------------------编程问答-------------------- 注册过程中我也常遇到返回Fail,但是大多时候是提交成功的

出现Fail,我想应该是注册频率过快了 --------------------编程问答--------------------
引用 15 楼 ioirliao16 的回复:
引用 14 楼 fangxinggood 的回复:
.net 4.0以下,cookie中domain和提交的域名不符时有丢失cookie的bug。

啊?这乍办呢?

是否有证实过这个问题? --------------------编程问答-------------------- 你用什么软件抓的包,如果是wireshark抓的能直接看到http参数,对比一下自己的,看看是不是有没写入流当中的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,