取消设置卷曲 CURLOPT_POSTFIELDS

use*_*227 6 php curl libcurl

我有一个 PHP 类,用于将一些数据发布到服务器,并使用相同的打开连接获取一些数据。问题是此代码将尝试在第二个请求中 POST 第一个请求中的数据......

curl_setopt(self::$ecurl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt(self::$ecurl, CURLOPT_POSTFIELDS, $data);
$request=curl_exec(self::$ecurl);
curl_setopt(self::$ecurl, CURLOPT_CUSTOMREQUEST, "GET");
$request=curl_exec(self::$ecurl);
Run Code Online (Sandbox Code Playgroud)

所以我需要取消设置的方法CURLOPT_POSTFIELDS。我尝试使用curl_setopt(self::$ecurl, CURLOPT_POSTFIELDS, null);,但无论如何卷曲发送Posting 0 bytes...请求的标头。

另请注意,我需要使用完全相同的连接,因此我无法通过curl_init 创建另一个连接。

Pre*_*red 5

将 设为CURLOPT_HTTPGET上次true请求之前。

来自PHP.net

CURLOPT_HTTPGET

TRUE 将 HTTP 请求方法重置为 GET。由于 GET 是默认设置,因此仅当请求方法已更改时才需要这样做。

  • 快速说明 - 我试图像这样删除 CURLOPT_POSTFIELDS: `curl_setopt($curl CURLOPT_POSTFIELDS, false);` 但显然即使将它们设置为 false 也会将请求方法更改回 POST。因此,请确保在设置请求类型之后**不要将 POSTFIELDS 设置为 false。 (2认同)