簡體   English   中英

PHP curl:CURLOPT_URL,CURLOPT_POST和CURLOPT_POSTFIELDS

[英]PHP curl: CURLOPT_URL, CURLOPT_POST, and CURLOPT_POSTFIELDS

如果我有一個如下所示的URL:

$url = 'http://domain.com/?foo=bar';

然后按如下方式執行curl:

$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($resource);
curl_close($resource);

我知道我是通過GET(默認)發出此請求的。

現在,如果我在同一場景中設置以下選項:

curl_setopt($resource, CURLOPT_POST, 1);

我知道它使用POST而不是GET,但是然后使用值為bar POST foo嗎? 或者正確的方法是:

$url = 'http://domain.com/';
$post = 'foo=bar';
$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_POST, 1);
curl_setopt($resource, CURLOPT_POSTFIELDS, $post);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($resource);
curl_close($resource);

如果我這樣做會發生什么(即在URL中提交值並通過CURLOPT_POSTFIELDS):

$url = 'http://domain.com/?foo=bar';
$post = 'foo=bar';
$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_POST, 1);
curl_setopt($resource, CURLOPT_POSTFIELDS, $post);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($resource);
curl_close($resource);

如何在該場景中提交數據?

POST和GET之間的區別在於服務器如何檢索數據。 由於您已將CURLOPT_POST設置為true,因此服務器通常通過CURLOPT_POSTFIELDS值(即HTTP正文中的參數)接收參數,並且可能忽略URL字符串中發送的參數 - 但這實際上取決於單個服務器。

暫無
暫無

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

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