shorte.st new api转换为php curl

时间:2014-08-23 13:35:09

标签: api curl

shorte.st是一个网址缩短服务。 最近他们改变了api如下: 卷曲命令行

curl H "public-api-token: fakekey" -X -d "urlToShorten=google.com" PUT http://api.shorte.st/v1/data/url

响应:

 {"status":"ok","shortenedUrl":"http:\/\/sh.st\/XXXX"}

如何将其更改为php curl版本?

2 个答案:

答案 0 :(得分:2)

function shst($url){
$apiurl="https://api.shorte.st/v1/data/url";
$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_URL, $apiurl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT' );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('public-api-token: fakekey','X-HTTP-Method-Override: PUT')); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "urlToShorten=".$url);
$data = curl_exec($ch);
curl_close($ch); 
$obj = json_decode($data);
$ret=$obj->{'shortenedUrl'};

return $ret;
}

他们提供的样本使用了错误的网址。应该是https而不是http

答案 1 :(得分:2)

这有效:

function shst($url){
    $key="";//your key
    $curl_url = "https://api.shorte.st/s/".$key."/".$url;
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $curl_url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    $array = json_decode($result);
    $shortest = $array->shortenedUrl;
    return $shortest;
}