我正在使用以这种格式接受网址的服务......
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()
)
);
这不起作用,我收到的回复是字段丢失。
任何人都可以看到我的方法有什么问题,还有一种简单的方法可以完全回显它发送的网址吗?
答案 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();
这应该显示响应变量中的所有内容。