PHP curl请求404,curl请求本身工作正常

时间:2018-06-06 20:53:38

标签: php curl

我有一个卷曲请求:

curl -X PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "x-api-token: API_TOKEN" \
--header "x-api-user: API_USER" \
--data '{"connection_id":"533905657015830359"}' \
"https://someserver/origination/numbers/%2B17032638425"

从命令行可以正常工作。当我尝试使用php脚本运行它时,它在详细响应中失败并带有404。

$url = "https://someServer/origination/numbers/%2B17032638425";

$postdata = json_encode(array('connection_id'=>'533905657015830359'));

$ch = curl_init($url);

curl_setopt_array($ch, array(
  CURLOPT_RETURNTRANSFER => TRUE,
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_VERBOSE => TRUE,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => $postdata
));
  $headers = ['Content-Type: application/json','Accept: application/json','x-api-user: SOME-USER','x-api-token: SOME-TOKEN'];
 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

 $response = curl_exec($ch);

我在这里做了一些令人讨厌的错误吗?

1 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我,但在我看来,你在shell CURL中使用PUT请求,在PHP版本中使用POST请求。这两种HTTP方法虽然含义非常接近,但通常不会通过API端点以相同的方式进行管理。