[英]How to get the response of Perl Post from Curl PHP
美好的一天,我的客戶給了我們一個 API 端點,當您傳入一些命令時,響應是 XML,我想知道是否有一種方法可以在 Z2FEC392304A5C23AC7138DA228ZBC79 中運行端點並返回響應。 我嘗試使用 PHP curl 但響應顯示 400 或錯誤請求。 我可以使用 URL 瀏覽器中的命令/參數訪問端點,所以它可以工作,但是當我使用 curl 嘗試它時。 里面沒有任何反應,這可能嗎? 還是我的代碼做錯了什么?
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.winquote.net/cgi-bin/compete.pl?dc=-cv1.5 -ccca -qt0 -pccaXXXXXXXXX -rt0 -dob11061992 -gen1 -rR -fa500000 -pg0 -pi4 -lc1 -pm0 -rc0 -rop0 -langen -fmt -ceilp -faEXACT",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST"
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
查看PHP Curl 中 postFields 中的空格,它可能會回答您的問題。
這里唯一的問題是查詢參數不正確,'400' 響應是這樣說的。 在瀏覽器中,您會看到空格已轉換為“%20”。瀏覽器已為您完成了這項工作。 你必須做類似的事情,即編碼你的查詢參數,因為在做發布請求之前有空格。
來自https://curl.haxx.se/docs/manpage.html#--data-urlencode
--data-urlencode
(HTTP) 這將發布數據,類似於其他 -d、--data 選項,不同之處在於它執行 URL 編碼。
要符合 CGI,該部分應以名稱開頭,后跟分隔符和內容規范。 可以使用以下語法之一將該部分傳遞給 curl:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.