如何解决无法使维基百科摘要 API 重定向工作
我正在使用 PHP cURL 和 jQuery 通过将国家/地区名称添加到 url 的末尾来对此 api 进行 ajax 调用:https://en.wikipedia.org/api/rest_v1/page/summary/
通过循环遍历 restcountries.eu API 并获取国家/地区“名称”,国家/地区名称保存在变量中。除了名称不完全匹配的国家/地区外,一切正常,例如:巴哈马 vs 巴哈马、英国 vs 大不列颠及北爱尔兰联合王国。如果我在手动输入这些维基百科会自动正确重定向。
我已尝试将“&redirects”添加到 url 的末尾(在 PHP 中),但这不起作用,详细信息键的值为“找不到页面或修订版”。如果我只传递保存的变量“Bahamas”而没有“&redirect”,则维基百科 api 返回的数据对象为“null”。
顺便说一句,我的“countryName”变量使用了 .replace(/\s+/g,'_') 并且我对特立尼达和多巴哥或巴布亚新几内亚等标准名称没有任何问题。
另一个例子,如果在 PHP 中我硬编码 $url='https://en.wikipedia.org/api/rest_v1/page/summary/United_Kingdom_of_Great_Britain_and_northern_Ireland'; 我得到的数据对象是“空”
但如果我只是在浏览器中通过相同的网址,它会自动重定向到 https://en.wikipedia.org/api/rest_v1/page/summary/United_Kingdom。
如何使重定向正常工作?
<?PHP
$executionStartTime = microtime(true) / 1000;
$url='https://en.wikipedia.org/api/rest_v1/page/summary/'. $_REQUEST['place'];
$ch = curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);
$decode = json_decode($result,true);
$output['status']['code'] = "200";
$output['status']['name'] = "ok";
$output['status']['description'] = "mission saved";
$output['status']['returnedIn'] = (microtime(true) - $executionStartTime) / 1000 . " ms";
$output['data'] = $decode;
header('Content-Type: application/json; charset=UTF-8');
echo json_encode($output);
?>
我的ajax调用:
$.ajax({
url: "libs/PHP/wiki.PHP",type: 'GET',dataType: 'json',data: {
place: countryName
},success: function(result) {
console.log('wiki info',result);
if (result.status.name == "ok") {
$('#txtWikiImg').html('<img src=' + result.data.thumbnail.source +'><br>');
$('#txtWiki').html('Wikipedia: ' + result.data.extract +'<br>');
}
},error: function(jqXHR,textStatus,errorThrown) {
console.log(textStatus,errorThrown);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。