我有一个简单的 PHP 脚本,它使用 CURL 将 HTTP Post 请求发送到远程服务器。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://91.250.77.10/test.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('a' => 'b'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error)
echo $error;
else
echo $contents;
这会导致错误:“服务器没有响应”。在远程服务器的访问日志中也找不到该请求!
更重要的是,如果我将 postfields 作为查询字符串发送,即:
curl_setopt($ch, CURLOPT_POSTFIELDS, '&a=b');
那么一切都很好。
远程服务器上的 Apache 或 PHP 配置似乎有问题。有什么提示吗?
编辑:
就目前而言,看起来服务器不接受(或正确处理)带有 Content-Type: multipart/form-data 的请求(CURL 在将数组设置为后字段时使用该类型,但在设置字符串时不使用该类型。)
由于我需要发送带有请求的文件,因此我必须使用 multipart/form-data。那么如何让服务器正确处理这个问题呢?