HTTP POST问题

hlj493595708 2009-10-06 11:35:32
用以下代码:
Function HttpPOST(ByVal Url As String, ByVal PostData As String, Optional ByVal Time As Integer = 0) As Stream
Dim req As HttpWebRequest
If Time <> 0 Then
End If
req = WebRequest.Create(Url)
req.Method = "POST"
Dim bytesData() As Byte = System.Text.Encoding.ASCII.GetBytes(PostData)
req.ContentLength = bytesData.Length
Dim postStream As Stream = req.GetRequestStream()
postStream.Write(bytesData, 0, bytesData.Length)
Dim res As HttpWebResponse = req.GetResponse()
Return res.GetResponseStream
End Function
将返回流转换为文本之后,发现怎么都是失败的,POST文本没有问题,因为在其他编程语言里面都能成功.
应该怎么改?
提供一组测试数据:
地址:http://www.5d6d.com/logging.php?action=login&referer=bbscp.php
POST数据:username=用户名&password=密码&submit=+&formhash=36a2650c&loginfield=username&loginsubmit=true
...全文
313 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
MOTA 2009-10-10
  • 打赏
  • 举报
回复
编码..把发送的数据 编码一下.
hlj493595708 2009-10-08
  • 打赏
  • 举报
回复
我用HttpAnalyzer查过两种语言的POST内容,发现.net少了几个标头,加上去后还是不行,有没有通用的POST代码,即不同内容可以用参数去修改,那样的代码应该怎么写?
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="gbk"?><root><![CDATA[登录失败,您还可以尝试 3 次<script type="text/javascript" reload="1">
function ajaxerror() {
alert('登录失败,您还可以尝试 3 次');
}

ajaxerror();

</script>]]></root>
tuoshi 2009-10-06
  • 打赏
  • 举报
回复

你把提交地址改成:

http://www.5d6d.com/logging.php?action=login&loginsubmit=yes&inajax=1
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
乱输入都没有错误提示的,不信试试看.
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
这个论坛居然没有验证码,嘿嘿。

你不提供用户名密码不好测啊,懒得去注册了。
孟子E章 2009-10-06
  • 打赏
  • 举报
回复
你可以试试utf8编码
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
唉,坚持到底吧,POST前面发的页面,这是你的程序的HTTP头:

POST /logging.php?action=login&loginsubmit=yes&inajax=1 HTTP/1.1
Host: www.5d6d.com
Content-Length: 88
Expect: 100-continue
Connection: Keep-Alive

这是浏览器提交的HTTP头:

POST /logging.php?action=login&loginsubmit=yes&inajax=1 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://www.5d6d.com/logging.php?action=login&referer=bbscp.php
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MAXTHON 2.0)
Host: www.5d6d.com
Content-Length: 98
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: cdb_sid=hWKGFg; __utmc=25581497; __utma=25581497.2051854760.1254800236.1254801694.1254816894.3; __utmz=25581497.1254800236.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=25581497.1.10.1254816894

至于你说的其他编程语言调用API实现,你也可以抓取看看。。。。。。
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
这么说,用其他编程语言是调用API实现的,.net是用类库实现的,向同一个网址POST同样的内容就用API能成功,用.net类库就不行了,为什么?
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
你还真是固执,有点懒惰的固执,我说的方法你去试了么?

不要以为POST文本相同,效果就应该相同。
有种东西叫做HTTP头,不同语言默认情况下发送的头信息不一定是相同的,你缺了个头信息或是某个头信息不符,你就应该添加或是修改这个头信息!

上面说的Referer、UserAgent、Cookie都是头信息之一。
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
说了POST文本没错.因为在其他编程语言中向同一个网址POST同样的内容能成功,换成.net就不行了.
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
我都懒得给你试了,我说的嗅探工具你有没有用?看看正常网页登录和你程序模拟登录发送的数据有什么区别,你自然就明白了。

还有很多工作要做的,基本上除了上面说的还有比如POST提交的数据xxx=后面的值中的中文和一些特殊符号要根据gb2312或utf-8等格式编码的。
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
http://social.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/c17494dc-cb93-43a4-8293-3e7b93145fd0
像这种情况又怎么办?
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
慢慢琢磨吧,做这方面工作最基本的还要伪造Referer和UserAgent,记录和传递Cookie。
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
向同一地址POST同样的内容,用API方式就行,换成类库就不行了.
用类库应该怎么写?
shalen520 2009-10-06
  • 打赏
  • 举报
回复
提交的东西不全吧,httpreffer这些东西好像没有,浏览器信息也没有
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
向同一地址POST同样的内容,用API方式就行,换成类库就不行了.
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
这个跟语言没关系,关键在向服务器提交的数据,你用嗅探工具分别抓一下数据看看。
hlj493595708 2009-10-06
  • 打赏
  • 举报
回复
问题是其他编程语言怎么能行?
tuoshi 2009-10-06
  • 打赏
  • 举报
回复
要学会有嗅探工具,比如我用的SmartSniff。
加载更多回复(1)

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧