我正在尝试建立与Purolator跟踪的Web服务的连接(Purolator是加拿大的一家运输公司)。网络服务网址https://devwebservices.purolator.com/EWS/V1/Tracking/TrackingService.asmx
我已注册,并收到了开发密钥和开发密码。当我在Visual Studio中添加Web引用时,我会反复询问我的用户名和密码。我多次输入它们,最终放弃并向我提供此错误:
405 - 不允许使用用于访问此页面的HTTP动词。 无法显示您要查找的页面,因为使用了无效的方法(HTTP动词)来尝试访问。
显然我需要使用基本HTTP身份验证对Web服务进行身份验证,我猜测在Visual Studio中弹出的用户名/密码框不执行该类型的身份验证?
我的开发密钥和密码肯定有效。我在PHP应用程序中尝试过它们,它连接得很好。
知道如何将此Web服务添加到VB.net项目中吗?我还获得了一个本地WSDL文件。我无法将此文件添加为Web引用,但我可以将其添加为服务引用。添加它作为服务引用不会提供对TrackingService()的访问,这是我创建实例所需的。
有什么想法吗?我已经设法在VB.net中使用其他(更简单的)Web引用,但我以前从未使用过身份验证。
任何建议都将受到赞赏。
答案 0 :(得分:1)
在您的网页浏览器中输入URL以获取WSDL(使用您的凭据):https://devwebservices.purolator.com/EWS/V1/Tracking/TrackingService.asmx?wsdl
复制内容并将文件另存为PurolatorWS.wsdl。
在项目中添加Web引用,但不是指向URL,而是将其指向您在本地保存的WSDL文件。
确保在调用任何方法设置正确的URL之前设置URL属性。理想情况下使用Config设置,以便您可以指向不同的环境而无需更改代码。
Dim objWebService As New PurolatorWS()
objWebService.Url =" https://devwebservices.purolator.com/EWS/V1/Tracking/TrackingService.asmx"