您好我正在尝试与我的asp.net页面中的Web服务通信后面的代码(vb.net)当我拨打电话时我得到了401未经授权的错误但是当我通过简单的html页面尝试相同的调用时有用。
这是我的简单html页面
<form method="post" action="https://mycallingwebpage.co.uk/login">
<input type="submit">
</form>
这很好,并返回我期望的。
但是在我的vb.net代码中,这不起作用。
Public Function mylogin(ByVal ServiceProfile) As String
Dim xmldoc As New Xml.XmlDocument
Try
myWebClient = New WebClient
myWebClient.Headers.Add("Content-Type", "text/plain")
Dim bytRetData As Byte() = myWebClient.DownloadData("https://mycallingwebpage.co.uk/login" & ServiceProfile)
Catch ex As Exception
End Try
End Function
我现在已经向前迈进了一步。
除了上面我之前的问题,我仍然无法拨打电话。我发现,如果我打电话给http url它可以工作,但调用https url它没有 - 这下面的ajax调用对我有用 - 所以我需要做什么才能将下面的代码转换为webclient在vb.net打电话? - 这需要适用于https
$.ajax({
type: "POST",
contentType: 'application/x-www-form-urlencoded',
dataType: "application/xml",
crossDomain: true,
data: {'login' : encodeURIComponent('user'),'password' : encodeURIComponent('password')} ,
url: "https://myURL.com",
success: doThis,
error: doThat
});
答案 0 :(得分:0)
在访问WS之前,您必须自己“授权”。您可能缺少授权标头。对不起,我不是VB专家,但它应该是这样的:
myWebClient.Headers.Add("Authorization", "Basic " + ADD_UR_SECRET_HERE)
顺便说一句,在将其添加到标题之前,不要忘记使用Base64编码器对您的秘密令牌进行编码。
希望它有所帮助。