使用Web服务引用将Auth传递给API调用

时间:2009-07-29 17:58:10

标签: asp.net web-services

我是网络服务新手。我最后一次处理SOAP的时候是我创建了一堆包装类,它们根据我创建的一些响应对象/类发送请求并收到响应。所以我有一个对象发送某些API请求,同样也有一组对象将响应作为对象保存回来,所以我可以利用第三方API。

然后有人来找我,说为什么不使用wsdl和web服务。好的,今天我去创建了一个“服务参考”。我看到这就是所谓的“代理类”。你只需要实例化一个这样的实例,然后你可以访问wsdl中的所有方法。

但是这给我留下了一些问题。回到我手动创建自己的类的时候,我有一个暴露属性的类,我会设置然后访问签名,用户名,密码以及我使用的任何第三方API所需的Http请求。进行API调用。

但是随后使用服务引用,我将如何传递这些信息,就像我在自定义类中一样?例如,我将使用PayPal API。它要求您发送签名和一些其他信息,如用户名和密码。

// Determins if API call needs to use a session based URI
                string requestURI = UseAuthURI == true ? _requestURIAuthBased + aSessionID : _requestURI;

                byte[] data = XmlUtil.DocumentToBytes(doc);

                // Create the atual Request instance
                HttpWebRequest request = CreateWebRequest(requestURI, data.Length);

那么在为每个方法调用使用Web服务引用时,如何传递用户名,密码,签名等?是否像将其指定为方法的参数一样简单,还是使用代理类对象的.Credentials和.URL方法?在我看来,Credentials意味着Windows凭据,但我可能是错的。它是否仅限于此,或者您可以使用它来指定PayPal对每个方法调用/ API请求所需的标头值吗?

1 个答案:

答案 0 :(得分:0)