使用wp_remote_post发送URL无效

时间:2014-02-11 14:37:35

标签: wordpress

我正在使用以这种格式接受网址的服务......

http://www.mydomain.com/zone1/code/verify/?data1=Apple&data1=Banana&data3=Orange&data4=Pear

我正在尝试使用wp_remote_post提交并收到回复....

    $url = 'http://www.mydomain.com/zone1/code/verify/';
    $fields = array();
    $fields['data1'] = 'Apple';
    $fields['data2'] = 'Banana';
    $fields['data3'] = 'Orange';
    $fields['data4'] = 'Pear';

    $response = wp_remote_post( $url, array(
    'method' => 'POST',
    'timeout' => 45,
    'redirection' => 5,
    'httpversion' => '1.0',
    'blocking' => true,
    'headers' => array(),
    'body' => $fields,
    'cookies' => array()
    )
);

这不起作用,我收到的回复是字段丢失。

任何人都可以看到我的方法有什么问题,还有一种简单的方法可以完全回显它发送的网址吗?

1 个答案:

答案 0 :(得分:3)

此网址:

http://www..../verify/?data1=Apple&data1=Banana&data3=Orange&data4=Pear

采用GET格式,而不是POST,因此您应检查该请求的API文档,但它可能不支持POST格式,因此您需要使用GET语法,如下所示:

$url = 'http://www.mydomain.com/zone1/code/verify/';
$url .= '?data1=Apple';
$url .= '&data2=Banana';
$url .= '&data3=Orange';
$url .= '&data4=Pear';
$args = array(); //the default arguments should be ok unless the API needs something special like authentication headers
$response = wp_remote_get($url, $args);

我喜欢使用kint-debugger插件来挖掘这样的输出,使用它可以调用dd($response);并获得格式良好的响应显示。如果没有该插件,请稍后添加:

print '<pre>';
print_r($repsonse);
die();

这应该显示响应变量中的所有内容。