簡體   English   中英

對CURLOPT_HTTPGET和CURLOPT_POST選項感到困惑

[英]Confused about CURLOPT_HTTPGET and CURLOPT_POST options

我對於為什么有兩個與設置請求類型有關的選項感到困惑。 他們對我來說似乎是多余的。 PHP手冊頁面獲取curl_setopt()

CURLOPT_POST

如果為TRUE,則執行常規HTTP POST。 該POST是正常的application / x-www-form-urlencoded類型,最常用於HTML表單。

CURLOPT_HTTPGET

TRUE將HTTP請求方法重置為GET。 由於GET是默認設置,因此只有在更改了請求方法的情況下才需要這樣做。

如果我正確理解這一點,則默認情況下cURL發出GET請求,但可以通過執行以下操作將請求類型更改為POST:

curl_setopt($ch, CURLOPT_POST, true);

但是,除了執行以下操作之外,還要更改回GET請求:

curl_setopt($ch, CURLOPT_POST, false);

您還必須這樣做嗎?

curl_setopt($ch, CURLOPT_HTTPGET, true);

您需要查看libcurl 文檔,以進一步了解選項之間的差異,因為它們之間的差別非常微妙。 關鍵似乎在於您是否在請求之間重用curl句柄。

CURLOPT_HTTPGET :如果先前使用相同的curl句柄使用了POST,HEAD,PUT等,則強制HTTP請求返回使用GET。

CURLOPT_POST :使用“ Content-Type:應用程序/ x-www-form-urlencoded”標頭的常規POST請求,該標頭通常是提交HTML表單時使用的類型。 然后可以選擇使用CURLOPT_HTTPHEADER覆蓋標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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