2014-02-11 7 views
1

...發送URL與我使用接受URL此格式的信息服務wp_remote_post沒有工作

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() 
    ) 
); 

這不起作用,我收到的迴應是字段丟失。

任何人都可以看到我的方法有什麼問題,還有一種簡單的方法來回顯它正在發送的URL嗎?

回答

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(); 

這應該顯示響應變量中的所有內容。

+1

謝謝你的解釋,這一切都有道理。我現在試着申請 – fightstarr20

相關問題