Vb.net (500)网站登录脚本上的内部服务器错误

Vb.net (500)网站登录脚本上的内部服务器错误,vb.net,httpwebrequest,httpwebresponse,Vb.net,Httpwebrequest,Httpwebresponse,大家好,我在互联网上找到了一个脚本,可以登录facebook。这个脚本运行得很好,但现在我尝试在另一个网站上登录,我得到了500个错误 Dim cookieJar作为新的Net.CookieContainer()文件 Dim请求作为Net.HttpWebRequest Dim响应为Net.HttpWebResponse Dim strURL作为字符串=”http://xtract.basdistributie.nl:4040/Account/LogOn" 尝试 request=Net.HttpW

大家好,我在互联网上找到了一个脚本,可以登录facebook。这个脚本运行得很好,但现在我尝试在另一个网站上登录,我得到了500个错误

Dim cookieJar作为新的Net.CookieContainer()文件
Dim请求作为Net.HttpWebRequest
Dim响应为Net.HttpWebResponse
Dim strURL作为字符串=”http://xtract.basdistributie.nl:4040/Account/LogOn"
尝试
request=Net.HttpWebRequest.Create(strURL)
request.UserAgent=“Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)”
request.Method=“GET”
request.CookieContainer=cookieJar
response=request.GetResponse()
对于每个tempCookie,响应为Net.Cookie.Cookies
cookieJar.Add(tempCookie)
下一个
'立即发送post数据
request=Net.HttpWebRequest.Create(strURL)
request.UserAgent=“Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)”
request.Method=“POST”
request.AllowAutoRedirect=True
request.CookieContainer=cookieJar
Dim writer As StreamWriter=新StreamWriter(request.GetRequestStream())
writer.Write(“用户名=?”和密码=?”)
writer.Close()
response=request.GetResponse()
'从页面获取数据
Dim stream As StreamReader=新StreamReader(response.GetResponseStream())
以字符串形式显示的Dim数据=stream.ReadToEnd()
答复:Close()
如果data.Contains(“BAS Distribution Xtract”)=真,则
MsgBox(“ingelogd”)
如果结束
MsgBox(数据)
捕获e作为例外
如果e的类型是WebException,并且也是DirectCast(e,WebException).Status=WebExceptionStatus.ProtocolError,则
Dim errResp As WebResponse=DirectCast(e,WebException).Response
'读取错误响应
使用respStream作为Stream=errResp.GetResponseStream()
MsgBox(例如ToString)
终端使用
如果结束
结束尝试
错误消息出现在response=request.GetResponse()上。我也曾尝试使用Fidler获得更好的错误消息,但从未使用过。我还从internet上了解到,错误是因为网站是在asp而不是.net中构建的。这是真的吗


所有的帮助都得到了赞赏

facebook的登录机制无法与其他网站协同工作的原因是它们可能没有相同的登录表单参数

以下是您应该如何进行(尽管目前还不可能给出确切的答案)

  • 使用浏览器导航到要登录的网站
  • 检查登录表单的HTML以获取实际的参数名称。例如,这个站点可能使用“uname”而不是“username”之类的东西
  • 编辑代码,为表单上的每个输入发布一个值
  • 如果这不起作用:

  • 安装WireShark或类似软件,以便查看HTTP流量
  • 使用浏览器导航到网站
  • 使用浏览器登录,并使用wireshark查看登录请求。请特别注意POST变量名称和值以及标题信息
  • 根据需要更新脚本
  • 如果您需要第4步的帮助,请编辑您的帖子,以包含第3步的信息

    WIRESHARK

    下面是关于如何在此处使用wireshark的简要说明。我不会详细介绍过滤或类似的内容。你可以用你的眼睛来过滤:P

    打开wireshark时,将显示一个接口列表。第一步是选择一个接口

    • 如果您通过wifi连接,请选择一个wlan接口。希望只有一个。你可以依靠尝试和错误来得到正确的答案
    • 如果通过网络电缆连接,请选择eth0。希望只有一个等等
    如果界面列表没有显示,窗口左上角应该有一个图标,看起来有点像打印机。单击它将允许您选择界面(单击开始以开始捕获)

    登录您的网站(使用浏览器),并通过单击带有红色x的icno立即停止捕获

    现在您需要找到正确的数据包

    您感兴趣的协议是HTTP。您正在访问的域的名称可能会显示在“信息”列中。现在我只想假设是这样。如果它不只是作为评论这样说。另外,如果您看到SSL,那么这可能是无用的。我还不是很了解ssl

    好的,现在您可以识别发送到web应用程序的数据包。找一个上面写着POST的,看看里面有什么。如果这是你的登录资料,那就是胜利

    记下所有看起来相关的信息


    现在,如果您使用应用程序重复整个过程来尝试登录并找到登录数据包,那么您就可以发现其中的差异。

    facebook的登录机制无法与其他站点协同工作的原因是,它们可能没有相同的登录表单参数

    以下是您应该如何进行(尽管目前还不可能给出确切的答案)

  • 使用浏览器导航到要登录的网站
  • 检查登录表单的HTML以获取实际的参数名称。例如,这个站点可能使用“uname”而不是“username”之类的东西
  • 编辑代码,为表单上的每个输入发布一个值
  • 如果这不起作用:

  • 安装WireShark或类似软件,以便查看HTTP流量
  • 使用浏览器导航到网站
  • 使用浏览器登录,并使用wireshark查看登录请求。请特别注意POST变量名称和值以及标题信息
  • 根据需要更新脚本
  • 如果你