404获取服务器响应vb.net时出错

404获取服务器响应vb.net时出错,vb.net,http,webrequest,system.net.webexception,Vb.net,Http,Webrequest,System.net.webexception,我是webrequest的初学者,所以我不知道是什么原因导致了我的错误 我尝试按照microsoft webrequest教程登录表单,但当我想获得服务器响应时,出现以下错误: 远程服务器返回错误404未找到 所以我知道我使用的URL实际上存在,然后想知道代码的哪一部分是错误的。可能是因为我在做一个HTTPS请求,不像教程那样,它改变了什么? 另外,直接从服务器得到答案让我有点困惑:难道不应该有一个触发器来知道服务器何时应答吗 Dim request=WebRequest.Createhttps

我是webrequest的初学者,所以我不知道是什么原因导致了我的错误

我尝试按照microsoft webrequest教程登录表单,但当我想获得服务器响应时,出现以下错误:

远程服务器返回错误404未找到

所以我知道我使用的URL实际上存在,然后想知道代码的哪一部分是错误的。可能是因为我在做一个HTTPS请求,不像教程那样,它改变了什么?
另外,直接从服务器得到答案让我有点困惑:难道不应该有一个触发器来知道服务器何时应答吗

Dim request=WebRequest.Createhttps://ssl.vocabell.com/mytica2/login request.Credentials=CredentialCache.DefaultCredentials request.Method=POST Dim byteArray=Encoding.UTF8.GetBytes\u username=x&\u password=x request.ContentType=application/x-www-form-urlencoded request.ContentLength=byteArray.Length Dim dataStream=request.GetRequestStream dataStream.WritebyteArray,0,byteArray.Length 数据流,关闭 Dim reponse=request.GetResponse'错误 msgboxcTypeResponse,HttpWebResponse.StatusDescription 使用ds=reponse.GetResponseStream Dim读卡器=新的StreamReaderds MsgBoxreader.ReadToEnd 终端使用 回答,结束
谢谢你的时间,如果你有关于这个主题的相关教程,我很乐意阅读

您提到的页面确实存在并使用HTTPS,但是如果您查看其中的表单标记,它是这样的:

<form class="login-form form-horizontal" action="/mytica2/login_check" method="POST">

这意味着它不会将表单发回与页面相同的URL,而是将表单发送到该action属性中包含的URL。如果您试图使用代码模拟登录表单的提交,那么看起来您需要将POST请求发送到https://ssl.vocabell.com/mytica2/login_check 相反。

可能不起作用,但请尝试更改请求。方法=发送到请求。方法=获取,值得一试难道没有一种触发器可以知道服务器何时应答吗。。。这段代码是同步的,所以基本上你的VB代码要等到收到响应后才能继续。如果您正在执行异步请求,那么这将是一个合理的考虑。@K.Madden您不知道远程站点的期望是什么,但根据经验,我怀疑它是否接受用户名和密码作为GET/querystring参数——这通常被认为是一个重大的安全问题。上面的请求显然是在试图模拟表单回发,因此如果更改为GET有帮助,我会非常惊讶。通常情况下,如果站点配置正确,那么使用错误的HTTP方法应该会导致405方法不允许响应,而不是404未找到。@ADyson啊,好的,谢谢你的解释,我刚刚回忆起不久前我作为一个新手在网上看到asp时的情景,这对我很有帮助。作为一个初学者,我没有考虑到安全性和所有!谢谢你的回答@ADyson是的,我认为错误来自代码,因此我认为给出我尝试与之交互的真实url没有什么用处,如下所示: