WP_REMOTE_GET持续超时

时间:2016-09-22 作者:Angerion

我正在制作一个插件,将来自外部API的数据与WordPress backoffice中的元项目进行比较。

我试过使用wp_remote_get 方法查询我的API,但它不返回任何内容、任何人或任何内容。当在浏览器中使用相同的URL直接访问时,API会生成JSON数组,不会出现问题。

我做错了什么?

这是(插件中部分省略了代码)

    ..........
    $chopped = explode("@", $meta[\'Email\'][0]);

    $url = \'http://example.com/api/users/\'.$chopped[0].\'/\'.$chopped[1];

    global $wp_version;
    $args = array(
        \'timeout\'     => 5,
        \'redirection\' => 5,
        \'httpversion\' => \'1.0\',
        \'user-agent\'  => \'WordPress/\' . $wp_version . \'; \' . home_url(),
        \'blocking\'    => true,
        \'headers\'     => array(),
        \'cookies\'     => array(),
    ); 
    $response = wp_remote_get( $url, $args );
    $body = wp_remote_retrieve_body( $response );
    $http_code = wp_remote_retrieve_response_code( $response );

    echo \'<pre> Test dump: \'.print_r($http_code,1).\'</pre>\';
编辑1:对于那些可能认为它与csrf保护或类似软件有关的人,我可以从https://www.hurl.it/ 也没有任何问题。这个错误是不是因为我在钩子里调用它?

编辑2:我得到的响应代码

WP_Error Object
(
    [errors] => Array
        (
             [http_request_failed] => Array
                (
                    [0] => Connection timed out after 5003 milliseconds
                )

        )

    [error_data] => Array
        (
        )

)

1 个回复
SO网友:antonio polastri

检查这些参数

$args = array(
    \'timeout\'     => 10,
    \'sslverify\' => false
); 

相关推荐