簡體   English   中英

如何從 Curl PHP 獲得 Perl 帖子的響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM