zoukankan      html  css  js  c++  java
  • 百度搜索API v3版本与soap

    技术文档请参考http://dev2.baidu.com/docs.do?product=2#page=File,和http://dev2.baidu.com/docs.do?product=2#page=file1http://dev2.baidu.com/docs.do?product=2#page=Request_Header

    因为在每次访问API时,您需要提供您的token(权限代码)以及要操作的用户名和密码来进行权限认证。

    那么如何验证?请看下面的代码:

    class Baidu_api {
    
        //soap连接标识
        private $soap_client;
        
        public function __construct($service_name)
        {
            $this->soap_client = new SoapClient ( URL . '/sem/sms/v3/' . $service_name . '?wsdl', array ('trace' => TRUE, 'encoding' => 'utf-8') );
            //帐号信息
            $sh_param = array ('username' => USERNAME, 'password' => PASSWORD, 'token' => TOKEN );
            $headers = new SoapHeader ( 'http://api.baidu.com/sem/common/v2', 'AuthHeader', $sh_param );
            $this->soap_client->__setSoapHeaders ( array ( $headers ) );
        }
        
        //取得公开的函数
        public function get_functions()
        {
            return $this->soap_client->__getFunctions();
        }
        
        //取得公开函数的参数
        public function get_types()
        {
            return $this->soap_client->__getTypes();
        }
        
        //执行函数接口
        public function soap_call($function_name, array $arguments, array &$output_headers)
        {
            return $this->soap_client->__soapCall($function_name, $arguments, NULL, NULL, $output_headers);
        }
        
        public function get_last_request()
        {
            return $this->soap_client->__getLastRequest();
        }
        
        public function get_last_response()
        {
            return $this->soap_client->__getLastResponse();
        }
        
    }

    construct部份就是验证。

    如何请求对应的接口,举个例子:在reportservice中的接口getProfessionalReportId

    function get_professional_report_id($config)
        {
            $param = array(
                'getProfessionalReportIdRequest' => array(
                    'reportRequestType' => $config
                )
            );
            $output = array();
            $output_response = $this->client->soap_call('getProfessionalReportId', $param, $output);
            //保存记录
            $this->baidu_log_mdl->write_log('getProfessionalReportId||' . serialize($output));
            if(isset($output_response->reportId)) return $output_response->reportId;
            return FALSE;
        }
  • 相关阅读:
    初识sql语句
    IO模型比较分析
    select,poll,epoll,selectors
    多路复用IO
    非阻塞IO
    yield-from示例
    阻塞IO(blocking IO)
    IO模型介绍
    gevent实现套接字
    gevent异步,io自动切换
  • 原文地址:https://www.cnblogs.com/wkpilu/p/baiduapi_soap_header.html
Copyright © 2011-2022 走看看