我对Slim Framework 2完全不熟悉,我想对外部API进行HTTP调用。
它就像是:
GET http://website.com/method
有没有办法使用Slim执行此操作,还是必须使用curl for PHP?
答案 0 :(得分:11)
您可以使用Slim Framework构建API。 要使用其他API,您可以使用PHP Curl。
例如:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://website.com/method");
curl_setopt($ch, CURLOPT_HEADER, 0); // No header in the result
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return, do not echo result
// Fetch and return content, save it.
$raw_data = curl_exec($ch);
curl_close($ch);
// If the API is JSON, use json_decode.
$data = json_decode($raw_data);
var_dump($data);
?>
答案 1 :(得分:0)
<?php
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://website.com/method");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TCP_KEEPALIVE, 1);
curl_setopt($ch, CURLOPT_TCP_KEEPIDLE, 2);
$data = curl_exec($ch);
if(curl_errno($ch)){
throw new Exception(curl_error($ch));
}
curl_close($ch);
$data = json_decode($data);
var_dump($data);
} catch(Exception $e) {
// do something on exception
}
?>
答案 2 :(得分:0)
我更喜欢使用file_get_contents,它能够获取远程文件并且可以使用$context
参数进行调整。 fourth example显示获取请求。
$file = file_get_contents('http://www.example.com/', false, $context);