PHP 發起 curl POST 請求時傳遞數組

來源:互聯網
上載者:User
使用 PHP 的 curl 可以發起 HTTP 外部請求,但是發起 POST 請求時,是無法直接傳遞數組的,從 curl 層面來說,也沒有所謂的數組的概念,而更加通用也更合理的傳遞資料的格式其實是索引值對(key value pair)。

那麼,我們先得知道,為什麼要傳遞數組。

HTTP 協議規定了 HTTP 要求的三個部分:狀態行、要求標頭、訊息主體。訊息主體實際上是沒有規定格式的。平常主要用到的幾個要求標頭 Content-Type 為

application/x-www-form-urlencodedmultipart/form-dataapplication/jsontext/xml

所以問題的答案很明白了,傳遞什麼樣的資料類型得看需要發送什麼樣的請求。

一個典型的 curl POST 請求是下面這樣:

curl -X POST --data 'params[]=check1&params[]=check2' 'http://jayxhj.com/test/curl.php'

上面的請求將發送一個 Content-Type 為 application/x-www-form-urlencoded 的請求,請求的 body 為 params[]=check1&params[]=check2,在服務端,只需使用 $_POST即可擷取。

那麼回到 curl ,我們只需設定 option 為 CURLOPT_POSTFIELDS的 VALUE 為 key/value pair ,即可將數組以字串的形式傳遞至服務端,並直接由 $_POST擷取。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.