C'est La Vie

    人生无彩排,每一天都是现场直播!

    WordPress 远程调用 WP_Http 使用

    WordPress 提供了用于发送 Http 请求的 WP_Http 类,但在实际使用过程中一般不需要直接调用 […]

    WordPress 提供了用于发送 Http 请求的 WP_Http 类,但在实际使用过程中一般不需要直接调用该类,而是使用 WordPress 帮我们封装好的函数,可以让代码变的更加简洁。

    发送 GET 请求

    发送普通的 GET 请求直接用 wp_remote_get() 函数,下边是一个简单的例子:

    $response = wp_remote_get( 'http://www.endskin.com' );

    如果要添加 GET 参数的话可以直接在请求的链接后边添加查询字符串,或者使用 add_query_arg() 函数生成:

    $response = wp_remote_get( add_query_arg( 'wd', '搜索关键词', 'http://www.baidu.com/s' ) );

    //添加多个参数

    $response = wp_remote_get( add_query_arg( array(
    	'wd' => '搜索关键词',
    	'ie' => 'utf-8'
    ), 'http://www.baidu.com/s' ) );

    发送 POST 请求

    发送 POST 请求使用 wp_remote_post() 函数,例子:

    //查询参数
    $args = array(
    	'name' => '斌果',
    	'blog_url' => 'http://www.bgbk.org'
    );
    
    //发送请求
    $response = wp_remote_post( 'http://www.endskin.com', array( 'body' => $args ) );

    解析请求结果

    在上边的例子中,我都把请求的结果保存在了 $response 变量里,这个参数里包含所有请求的信息,那该如何从这个变量中找到我们要的信息呢?需要使用几个函数:

    wp_remote_retrieve_response_code():获取请求的 Http 状态码,请求成功则返回 200
    wp_remote_retrieve_body():获取请求的内容
    wp_remote_retrieve_response_message():获取请求结果的信息
    wp_remote_retrieve_header():获取请求结果的头信息

    另外值得一提的是,如果请求发生异常,会返回一个 WP_Error,里边包含错误信息。

    下边是一个完整的请求:

    //查询参数
    $args = array(
    	'name' => '斌果',
    	'blog_url' => 'http://www.bgbk.org'
    );
    
    //发送请求
    $response = wp_remote_post( 'http://www.endskin.com/adfad', array( 'body' => $args ) );
    
    //判断请求是否成功
    if( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) !== 200 ) die( '请求错误' );
    
    //获取请求内容
    $result = wp_remote_retrieve_body( $response );

    如果你想获取请求的 header 头信息,可以参考下边,下边的例子获取了 header 头中的服务器信息:

    $server = wp_remote_retrieve_header( $response, 'server' );

     

    本文转载自:http://www.endskin.com/wp-send-http.html

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用*标注