C# 使用PayPal SOAP API发送API调用

C# 使用PayPal SOAP API发送API调用,c#,paypal,paypal-soap,C#,Paypal,Paypal Soap,好的,我在.NET项目中有服务引用。是的,我知道您现在可以访问代理类 但在过去,我习惯于通过使用NVP的HttpWebRequest对象来实现这一点,但从未尝试过使用WSDL并以这种方式发送SOAP请求 我不太确定使用哪个对象发送请求。不知道从哪里开始。我看过这些文档,但没有看到.NET和PayPal的好例子 除了WSDL与通过nvpapi和querystring参数发送HttpWebRequest相比,我真的不明白发送请求的方式是否有区别。这都是通过Http实现的,所以您不能通过SOAP AP

好的,我在.NET项目中有服务引用。是的,我知道您现在可以访问代理类

但在过去,我习惯于通过使用NVP的HttpWebRequest对象来实现这一点,但从未尝试过使用WSDL并以这种方式发送SOAP请求

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


除了WSDL与通过nvpapi和querystring参数发送HttpWebRequest相比,我真的不明白发送请求的方式是否有区别。这都是通过Http实现的,所以您不能通过SOAP API(使用WSDL)使用HttpWebRequest吗?

首先从元数据生成服务引用:右键单击项目->添加服务引用并指向WSDL url:

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

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);
}

是的,我有服务,只是不知道使用什么对象来发送请求。因此,我知道如何使用代理类,如果我要像HttpWebRequest一样使用代理类,或者使用代理类来发出请求并包括SOAPI修改的原始帖子。请重新阅读。
HttpWebRequest
是一个低级API。它用于手动伪造HTTP请求和接收响应。SOAP是一种基于XML的HTTP协议。生成客户机代理类时,它将负责正确地形成XML请求并解析服务器的XML响应。您所需要做的就是调用相应的C#方法。因此,您永远不应该使用HttpWebRequest调用基于SOAP的web服务,而应该使用生成的类?哇!好的,我玩web服务游戏迟到了。上次我是通过NVP完成的,我自己完成了HttpWebRequest的所有代码:使用stringbuilder手动格式化XML,通过HttpWebResonse或其他方式获得响应……那么您的PayPalAPIInterfaceClient是什么?我在最新的WSDL中没有看到这一点。我认为AbstractRequestType是您要使用的。不知道那是为了什么。你能帮我解决这个问题吗??!?!