无法从php发送JSON请求?

时间:2016-09-27 11:14:22

标签: php json curl

我试图从我这样的服务器发送JSON请求:

public function subscribe() {
    $arrData = array(
        'name' => $name,
        'user_id' => $user_id,
        'merchant_reference' => $merchant_reference
    );

    $ch = curl_init(env('MY_API'));
    # Setup request to send json via POST.
    $data = json_encode($arrData);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    # Return response instead of printing.
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    # Send request.
    $result = curl_exec($ch);
    curl_close($ch);
}

当我从浏览器调用此函数时,我收到错误415, 但是,当我从Postman调用它时,它的工作正常,并返回正确的响应。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

问题就像@devpro在我的本地服务器中说的那样,似乎我需要在本地服务器中更改一些配置以允许发送JSON请求

答案 1 :(得分:0)

我认为你不会将$ arrData传递给订阅函数

答案 2 :(得分:0)

您忘了设置选项

curl_setopt($ch, CURLOPT_POST, true);

也始终可以使用任何自己的TCP侦听器调试查询,例如netcat

UPD: 发送请求后,请检查响应状态代码:

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);