任何你不需要创建和保存一个实际的JSON文件为每个请求。您可以简单地创建一个JSON字符串并将其作为POST有效负载发送。就执行curl而言,您应该看到PHP Manual中的本地函数。具体而言,curl_init(),curl_setopt()和curl_exec()。下面是一个例子...
$url = "https://www.googleapis.com/qpxExpress/v1/trips/search?key=YOUR_API_KEY_HERE";
$postData = '{
"request": {
"passengers": {
"adultCount": 1
},
"slice": [
{
"origin": "BOS",
"destination": "LAX",
"date": "2016-05-10"
},
{
"origin": "LAX",
"destination": "BOS",
"date": "2016-05-15"
}
]
}
}';
$curlConnection = curl_init();
curl_setopt($curlConnection, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($curlConnection, CURLOPT_URL, $url);
curl_setopt($curlConnection, CURLOPT_POST, TRUE);
curl_setopt($curlConnection, CURLOPT_POSTFIELDS, $postData);
curl_setopt($curlConnection, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curlConnection, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlConnection, CURLOPT_SSL_VERIFYPEER, FALSE);
$results = curl_exec($curlConnection);
你也可以使用一个数组来创造有效载荷,然后用json_encode()将其转换成JSON字符串。
$postData = array(
"request" => array(
"passengers" => array(
"adultCount" => 1
),
"slice" => array(
array(
"origin" => "BOS",
"destination" => "LAX",
"date" => "2016-05-10"
),
array(
"origin" => "LAX",
"destination" => "BOS",
"date" => "2016-05-15"
)
)
)
);
然后用
curl_setopt($curlConnection, CURLOPT_POSTFIELDS, json_encode($postData));
感谢。有效。现在我从那里得到了json的东西。现在问题是我无法解析它。我得到了:'print_r($ flightsarray [0] - > trips-> data-> airport [0]);'结果_Notice:尝试获取非object_的属性。我也尝试过'$ flightsarray [0] [1] [1]' – xampper
使用['json_decode()'](http://php.net/manual/en/function.json-decode.php)来转换结果JSON到一个对象或数组中,无论你喜欢什么。如果您有关于解析此API结果的具体问题,那么您应该为此创建一个新问题。 –