我正在尝试使用以下代码将cURL请求发送到远程API服务器:
$ch = curl_init();
$options = array(CURLOPT_URL => 'http://minecms.info/update/index.php',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => array('Content-type: application/json'),
CURLOPT_SSL_VERIFYPEER => false
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
但我不希望用户在浏览器上访问更新页面,因此我在请求中设置了内容类型标题。问题是我不知道如何在远程服务器上检测此内容类型。基本上我想要的是检查客户端请求是否有content type: application/json
设置,如果是,它执行剩下的代码,如果不是exit;
。
感谢任何提前帮助的人。
答案 0 :(得分:0)
您可以尝试使用getallheaders()
并检查Content-Type
是否到位。
查看该人http://www.php.net/manual/it/function.getallheaders.php了解见解
----编辑洞察----
这个怎么样? (我目前正在使用)
public function getAllHeaders()
{
if(function_exists('getallheaders'))
{
return getallheaders();
}
$headers = array();
foreach ($this->parameters as $key => $value)
{
if (substr($key, 0, 5) == 'HTTP_')
{
$headers[str_replace(" ", "-", ucwords(strtolower(str_replace("_", " ", substr($key, 5)))))] = $value;
}
if ($key == "CONTENT_TYPE")
{
$headers["Content-Type"] = $value;
}
}
return $headers;
}