RESTAPI上带有特定头的HTTP POST请求[PHP]
我需要向RESTWebService发送一些数据。我已经尝试模拟后端API正常工作,但我只是不知道如何通过标头授权给该API 在标题中,应该有一个: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
授权
设置在承载令牌上
这是我尝试过的,但没有成功
$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);