我以前只做过一次API请求。
已经提供了包含以下信息的文件:
您必须使用用户名和密钥进行身份验证才能使用API执行任何操作。身份验证详细信息必须与每个中的其他变量一起传递 请求。
通过HTTP(S)POST请求https://(URL)。通信采用JSON格式,因此请确保您的HTTP标头指定“application / json”。我们将为大多数请求返回HTTP状态代码200(OK),但也可以返回400(错误请求)或403(禁止/授权失败)
然后我会看到所有端点的代码示例,例如:
示例请求
{ "request": "GetAvailableServices", "username": "custTEST_api", "key": "xxxxxxxxxxxxxxxxxxxxxx" }
响应
{ "success": true, "available_services": { "IPECX": { "carrier_name": "TOLL IPEC", "service_name": "ROAD EXPRESS" }, "IPECH": { "carrier_name": "TOLL IPEC", "service_name": "PRIORITY" }, "GIBSONX": { "carrier_name": "GIBSON", "service_name": "ROAD EXPRESS" } }, "error_code": null, "error_message": null
所以这与我上次的API集成不同。
我已获得相应的用户名和密钥。
我试图在PHP中这样做..但不知道如何将上述内容翻译成php文档。我在curl中执行了以前的授权以获取JSON数据。但只是想不出这个。
如果我可以让一个请求正常工作,那我就没事了。
答案 0 :(得分:1)
这就是我做到的。
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.com.au/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\r\n\"request\":
\"GetAvailableServices\",\r\n\"username\": \"APIUSERNAME\",\r\n\"key\":
\"APIKEY\"\r\n}",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application/json",
"key: \"APIKEY\"",
"request: \"GetAvailableServices\"",
"username: \"INNOVATIVEAPI\""
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}