通过https调用Web服务

问题描述:

我需要通过https在C#中调用Web服务? 我需要从网站获取证书吗?我如何使用它来调用Web服务?通过https调用Web服务

拨打https而不是拨打http的网络服务没有什么特别或不同。您可以使用svcutil.exe(或VS中的添加服务引用)或wsdl.exe来从WSDL生成客户端代理,并调用该方法。较低级别的HttpWebRequestHttpWebResponse最终会处理实际的通话和证书,但它应该对您的代码透明。当然,托管Web服务的服务器需要提供有效的证书。

+0

嗨达林。你能否详细说明一下?我有一个类似的问题,我正在调用SSIS包中的webmethod。以前webmethod在HTTP上工作正常,但现在使用HTTPS。现在我无法调用webmethod。你能指导我吗?我正在使用c#开发。非常感谢。 – RachitSharma 2016-04-29 09:29:07

虽然有些证书可能会出现已知问题。请参阅http://support.microsoft.com/kb/823177/en-us

您是否拥有由Web服务提供商提供的客户端证书?

如果是这样,根据您使用的是哪个版本的.NET,有多种不同的方式来执行此操作。您使用的是哪个版本,并且您在如何生成客户端代理类方面受到限制?

+0

.NET 2.0,没有限制 – Kts 2009-11-12 21:12:30

我认为你正在使用Visual Studio来创建你的项目,如果你是这样做很容易。我认为您具有要连接到的Web服务的URL,并且它以HTTPS开头。

在解决方案资源管理器中的项目中(假设您使用Visual Studio),您应该看到一个节点说“引用”,另一个节点说“Web引用”。右键单击“Web引用”,然后基本上按照向导。这非常简单。你可以指定你自己的命名空间。我通常使用格式SomethingAPI。然后使用API​​,就像您希望项目中的任何其他对象一样。你会得到intellisense和所有。