zoukankan      html  css  js  c++  java
  • C#/PHP调用有SoapHeader的WebService

    日前调用第三方WebService接口时遇到了SoapHeader验证的问题,记录一下解决方法。

    接口需要的格式:

    <soapenv:Header>
        <ReqSOAPHeader xmlns="http://xxx.com">
            <appKey>key</appKey>
            <authKey>pwd</authKey>
        </ReqSOAPHeader>
    <soapenv:Header>

    C#:

        //创建header类,注意属性名
        [DataContract(Namespace = "http://xxx.com")]
        public class ReqSOAPHeader
        {
            [DataMember]
            public string appKey { get; set; }
            [DataMember]
            public string authKey { get; set; }
        }
    
        //client 为根据wsdl生成的代理类
        //创建并加入请求
        AddressHeader soapheader = AddressHeader.CreateAddressHeader("ReqSOAPHeader",   "http://xxx.com", new ReqSOAPHeader { appKey = "key", authKey = "pwd" });
        EndpointAddressBuilder eab = new EndpointAddressBuilder(client.Endpoint.Address);
        eab.Headers.Add(soapheader);
        client.Endpoint.Address = eab.ToEndpointAddress();

    PHP:

    //创建Header类
    //注意属性名
        class ReqSOAPHeader {  
            public $appKey;  
            public $authKey;  
            
            public function __construct($app,$auth) {  
                $this->appKey=$app;  
                $this->authKey=$auth;  
            } 
        }
    
    //创建soapclient并加入头
        $simple = new SoapClient(null, array('location'=>$location,'uri'=>'xxx.com','encoding'=>'UTF-8'));
        $auth = new ReqSOAPHeader("key", "pwd");
        $header = new SoapHeader('http://xxx.com', 'ReqSOAPHeader', $auth);
        $simple->__setSoapHeaders($header);
  • 相关阅读:
    ext4.2常用的几种弹框
    oracle的批量操作sql语句
    ztree异步加载树节点
    shiro接口对象介绍
    jquery记住密码
    整合ssm框架
    redis中 Could not get a resource from the pool 异常解决
    redis的安装
    centos下tomcat的安装
    centos下MySQL的安装
  • 原文地址:https://www.cnblogs.com/himax/p/how_to_call_webservice_with_soapheader.html
Copyright © 2011-2022 走看看