2016-09-18 13:52:58 0 评论 PHP Boy.Lee

解决PHP的CURL库发送POST请求时Content-Type为空的问题

当使用PHP的CURL发送POST请求时,发现POST的Content-Type为空,这并非预期结果所以进行了debug并解决了问题。以此记录并希望能帮助到后来人。

{ PHP CURL 设置 Content-Type }

$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/json; charset=utf-8';

...

if (!empty($headers)) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}

 

{ 解决Content-Type为空 }

主要原因是因为POST的内容为空,所以php的安全策略直接把Content-Type也设置为空了.解决办法就是为POST设置非空的值, Content-Type就会传递正确的值到服务端.

curl_setopt($ch, CURLOPT_POSTFIELDS, ['source'=>'yiilib.com']);