RESTAPI上带有特定头的HTTP POST请求[PHP]

RESTAPI上带有特定头的HTTP POST请求[PHP],php,Php,我需要向RESTWebService发送一些数据。我已经尝试模拟后端API正常工作,但我只是不知道如何通过标头授权给该API 在标题中,应该有一个: 授权设置在承载令牌上 这是我尝试过的,但没有成功 $host = "www.example.com"; $path = "/path/to/backend"; $arr = array('caseNumber' => '456456787'); $data = json_encode($arr); $token = "ThisIsSomeLo

我需要向RESTWebService发送一些数据。我已经尝试模拟后端API正常工作,但我只是不知道如何通过标头授权给该API

在标题中,应该有一个:
授权
设置在
承载令牌上

这是我尝试过的,但没有成功

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array('caseNumber' => '456456787');
$data = json_encode($arr);
$token = "ThisIsSomeLongToken";

header("POST ".$path." HTTP/1.1\r\n");
header("Host: ".$host."\r\n");
header("Content-type: application/json\r\n");
header("Authorization: Bearer ".$token." \r\n");
header("Content-length: " . strlen($data) . "\r\n");
header("Connection: close\r\n\r\n");
header($data);
我是PHP中webservices的新手,所以我甚至不知道这是否正确,但它不会抛出任何错误,也不会对webservice做任何事情

我希望能在PHP REST API中引入一些标题吗?
谢谢

您不能使用
header()
函数发送post请求。为此,您应该使用
cURL
。检查文档。
这可能会满足您的需求:

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array('caseNumber' => '456456787');
$token = "ThisIsSomeLongToken";

$ch = curl_init();

// endpoint url
curl_setopt($ch, CURLOPT_URL, $host . $path);

// set request as regular post
curl_setopt($ch, CURLOPT_POST, true);

// set data to be send
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr));

// set header
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Bearer: ' . $token));

// return transfer as string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

curl_close($ch);