发出调用webservice

时间:2013-12-09 13:22:18

标签: html asp.net vb.net web-services

您好我正在尝试与我的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
          });

1 个答案:

答案 0 :(得分:0)

在访问WS之前,您必须自己“授权”。您可能缺少授权标头。对不起,我不是VB专家,但它应该是这样的:

myWebClient.Headers.Add("Authorization", "Basic " + ADD_UR_SECRET_HERE)

顺便说一句,在将其添加到标题之前,不要忘记使用Base64编码器对您的秘密令牌进行编码。

希望它有所帮助。