如何使用php在HTTP POST请求中发送参数?

时间:2016-09-21 14:08:41

标签: php http

我尝试在php中发送POST请求,但帖子字段在url中。

 $project_no        = 1711;
 $group_name        = "name of group";

 $url = urlencode("http://api.example.org/v1/projects?auth_token=xsxxex-xxmczx-66mvmc-9133&project_no=" . $project_no . "&group_name=" . $group_name);

 $ch = curl_init($url);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 $response = curl_exec($ch);
 curl_close($ch);

var_dump($response)

上面的代码返回错误

bool(false)

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要将vars包含为postfields并将其作为额外的curl参数发送:

$data = array('project_no' => $project_no, 'group_name' => $group_name);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

如果应用程序需要json,你可以先json_encode()$ data。

$json = json_encode($data);

curl_setopt($ch, CURLOPT_POSTFIELDS, $json);

我不知道您的应用程序的细节,但可能还需要将auth_token作为授权标头发送:

$headers = array(
                'Authorization': 'xsxxex-xxmczx-66mvmc-9133',
                //etc);


    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);