您好,我正在使用 API。在 API 文档中清楚地写道,aAll 数据以 JSON 格式发送和接收,采用 UTF-8 编码。然后他们给了一行
$ curl --user name:password https://api.abc.de/erer
我只是想问一下我将如何发送上面提到的 curl 请求?用户名和密码将作为GET
或?POST
headers
我正在使用以下代码,但接收到空数组。文档说它必须收到一些错误或成功代码。
$ch = curl_init();
$post_data = array('username'=>$_POST['username'],'password'=>$_POST['password']);
$post_data = http_build_query($post_data);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result);
$result = (array) $result;
echo "<pre>";
print_r($result);
echo "</pre>";
die();
我已经打印出响应curl_get_info
是
Array
(
[url] => https://api.abc.de/erer
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0
[namelookup_time] => 0.618462
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0
[redirect_time] => 0
)