如何从PHP调用API url?
问题描述:
我想从共享主机调用一个API(mapquest)url。如何从PHP调用API url?
该网址工作正常,因为它显示了粘贴在浏览器中的预期JSON响应。
但是,我不能让它从一个PHP页面工作。 我试过curl
和file_get_contents
都没有成功。
我不断获取HTTP/1.1 400 Bad Request
错误...
这里是我使用的代码,这是很基本的...
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
if(!$result){
exit ('cURL ERROR: '.curl_error($ch));
}
return var_dump($result);
答
你好尝试这样
$query = urlencode('where={"steps":9243}');
$ch = curl_init('https://api.parse.com/1/classes/Steps?'.$query);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Parse-Application-Id: myApplicationID',
'X-Parse-REST-API-Key: myRestAPIKey',
'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);
有些事是指该链接
答
我知道了!
该网址由JSON数据和空格组成。
URL的这部分必须用urlencode()
编码,但不是完整的url。
它适用于curl
和file_get_contents()
。
答
试试下面的代码
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => "http://www.bing.com/",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => array(
'field1' => 'some date',
'field2' => 'some other data',
)
);
curl_setopt_array($ch, $curlConfig);
echo $result = curl_exec($ch);
curl_close($ch);
哎呀你没有设置头.. – 2015-03-31 10:21:11
你发送所有必要的标题? – Daan 2015-03-31 10:21:15