如何用php發(fā)送一個post請求并帶數(shù)據(jù)

可以使用 PHP 內置的 curl 庫來發(fā)送 POST 請求,并附帶數(shù)據(jù)。以下是一個示例:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://example.com/api/endpoint",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
    "field1" => "value1",
    "field2" => "value2"
  ),
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;

在此示例中负甸,我們使用 curl_init 初始化一個新的 cURL 會話,然后使用 curl_setopt_array 設置請求選項痹届。接下來呻待,我們使用 curl_exec 執(zhí)行請求,并使用 curl_close 關閉 cURL 會話队腐。請求的響應將作為字符串返回党窜,您可以將其存儲在變量 $response 中忠售。

如果數(shù)據(jù)是文件形式,則可以使用 @ 符號將文件路徑作為字段值提交甫匹。示例代碼如下:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://example.com/api/endpoint",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
    "field1" => "@/path/to/file1.jpg",
    "field2" => "@/path/to/file2.jpg"
  ),
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;

在此示例中,我們以 @/path/to/file1.jpg 和 @/path/to/file2.jpg 的形式提交兩個文件也物。請確保您的 PHP 腳本有權限讀取這些文件。

如果需要將 cookie 一并發(fā)送到請求中,可以使用 CURLOPT_COOKIE 選項充易。以下是一個示例:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://example.com/api/endpoint",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
    "field1" => "value1",
    "field2" => "value2"
  ),
  CURLOPT_COOKIE => "cookie1=value1; cookie2=value2",
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;

在此示例中,我們使用 CURLOPT_COOKIE 選項將兩個 cookie 作為字符串發(fā)送到請求中荸型。請根據(jù)您自己的需求調整代碼以發(fā)送正確的 cookie盹靴。

curl_setopt_array 函數(shù)接受一個數(shù)組,其中的每個元素都定義了 cURL 會話的特定選項瑞妇。以下是常見的選項:

  • CURLOPT_URL:請求的 URL 地址稿静。
  • CURLOPT_RETURNTRANSFER:將請求的結果作為字符串返回,而不是直接輸出辕狰。
  • CURLOPT_ENCODING:請求返回的編碼格式改备。
  • CURLOPT_MAXREDIRS:允許請求重定向的最大次數(shù)。
  • CURLOPT_TIMEOUT:請求的超時時間(以秒為單位)蔓倍。
  • CURLOPT_FOLLOWLOCATION:是否跟隨重定向請求悬钳。
  • CURLOPT_HTTP_VERSION:請求使用的 HTTP 版本。
  • CURLOPT_CUSTOMREQUEST:請求的類型(例如偶翅,GET默勾、POST、PUT聚谁、DELETE)母剥。
  • CURLOPT_POSTFIELDS:如果請求類型為 POST,則該選項定義了提交的數(shù)據(jù)形导。
  • CURLOPT_COOKIE:請求中要發(fā)送的 cookie环疼。

這僅是一些常見的選項。cURL 還有其他很多選項朵耕,您可以在 cURL 官方文檔中了解詳情:https://curl.haxx.se/docs/manual.html

如果要使用 GET 方法發(fā)送請求炫隶,可以使用以下代碼:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://example.com/api/endpoint?field1=value1&field2=value2",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_COOKIE => "cookie1=value1; cookie2=value2",
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;

get請求數(shù)據(jù)可以為文件形式嗎?
不可以。GET 請求的數(shù)據(jù)只能作為 URL 參數(shù)提交阎曹,而不能作為文件上傳伪阶。如果需要上傳文件,您需要使用 POST 請求芬膝,并使用 CURLOPT_POSTFIELDS 選項設置請求數(shù)據(jù)望门,可以設置為文件形式。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末锰霜,一起剝皮案震驚了整個濱河市筹误,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌癣缅,老刑警劉巖厨剪,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哄酝,死亡現(xiàn)場離奇詭異,居然都是意外死亡祷膳,警方通過查閱死者的電腦和手機陶衅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來直晨,“玉大人搀军,你說我怎么就攤上這事∮禄剩” “怎么了罩句?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敛摘。 經(jīng)常有香客問我门烂,道長,這世上最難降的妖魔是什么兄淫? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任屯远,我火速辦了婚禮,結果婚禮上捕虽,老公的妹妹穿的比我還像新娘慨丐。我一直安慰自己,他們只是感情好薯鳍,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布咖气。 她就那樣靜靜地躺著挨措,像睡著了一般挖滤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浅役,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天斩松,我揣著相機與錄音,去河邊找鬼觉既。 笑死惧盹,一個胖子當著我的面吹牛,可吹牛的內容都是我干的瞪讼。 我是一名探鬼主播钧椰,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼符欠!你這毒婦竟也來了嫡霞?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤希柿,失蹤者是張志新(化名)和其女友劉穎诊沪,沒想到半個月后养筒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡端姚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年晕粪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渐裸。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巫湘,死狀恐怖,靈堂內的尸體忽然破棺而出昏鹃,到底是詐尸還是另有隱情剩膘,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布盆顾,位于F島的核電站怠褐,受9級特大地震影響,放射性物質發(fā)生泄漏您宪。R本人自食惡果不足惜奈懒,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宪巨。 院中可真熱鬧磷杏,春花似錦、人聲如沸捏卓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怠晴。三九已至遥金,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒜田,已是汗流浹背稿械。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冲粤,地道東北人美莫。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像梯捕,于是被迫代替她去往敵國和親厢呵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容

  • HTTP協(xié)議詳解 HTTP協(xié)議是一個應用層的通信規(guī)范: 雙方要進行通信, 大家都要遵守一個規(guī)范——HTTP協(xié)議傀顾。H...
    單板小智閱讀 1,006評論 0 0
  • * 異步執(zhí)行方法 * string $url 地址 * array $post_data 參數(shù) */ public...
    陌丶猿閱讀 1,884評論 0 0
  • php curl功能很強大襟铭,我們最經(jīng)常用來做的是讀取網(wǎng)頁的HEADER頭信息,但是其功能不僅限于此,還可以進行網(wǎng)頁...
    小伙有點菜閱讀 678評論 0 0
  • 一蝌矛、什么是CURL道批? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議入撒,如HTTP隆豹、FTP、...
    茶藝瑤閱讀 4,598評論 0 6
  • 一茅逮、什么是CURL璃赡? cURL 是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議献雅,如HTTP碉考、FTP、...
    伊Summer閱讀 1,268評論 0 4