2010-01-19 45 views
5

好的,所以我在.NET项目中有服务引用。是的,我知道你现在可以访问代理类。用PayPal SOAP API发送API CAll

但过去我习惯通过使用NVP的HttpWebRequest对象来做到这一点,但从来没有尝试过使用WSDL并以这种方式发送SOAP请求。

我不太确定使用哪个对象来发送请求。不知道从哪里开始。我已经看过文档,但没有看到.NET和PayPal的好例子。

除了WSDL与通过NVP API和查询字符串参数发送HttpWebRequest之外,我真的不明白发送请求的方式是否有所不同。这一切都只是在Http,所以你不能使用HttpWebRequest通过SOAP API(使用WSDL)?

+0

你能帮我解决这个问题吗?!?! http://stackoverflow.com/questions/8762703/integrating-paypal-in-c-net-solution-using-wsdl-soap – dparkar 2012-01-06 18:39:35

回答

7

可通过生成从元数据服务引用启动:右键单击项目 - >添加服务引用并指向WSDL网址:https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl

这将生成代理类,其可用于当前的项目发送请求:

using (var client = new PayPalAPIInterfaceClient()) 
{ 
    var credentials = new CustomSecurityHeaderType 
    { 
     Credentials = new UserIdPasswordType 
     { 
      Username = "username", 
      Password = "password" 
     } 
    }; 
    var request = new AddressVerifyReq 
    { 
     AddressVerifyRequest = new AddressVerifyRequestType 
     { 
      Street = "some street", 
      Zip = "12345" 
     } 
    }; 
    var response = client.AddressVerify(ref credentials, request); 
} 
+0

是的,我有服务,只是不明白用什么对象发送请求。所以我知道如何使用代理类,就像我使用HttpWebRequest一样,或者使用代理类来发出请求并包含我现在修改原始帖子的SOAP – PositiveGuy 2010-01-19 22:02:54

+0

。再次阅读。 – PositiveGuy 2010-01-19 22:04:58

+0

'HttpWebRequest'是一个低级API。它用于手动伪造HTTP请求和接收响应。 SOAP是基于HTTP的基于XML的协议。当您生成客户端代理类时,它将负责正确地形成XML请求并解析服务器的XML响应。你所需要做的就是调用相应的C#方法。所以你应该从不**使用HttpWebRequest来调用基于SOAP的Web服务,而应该使用生成的类。 – 2010-01-19 22:08:55