我试图从OpenSubtitles(http://trac.opensubtitles.org/projects/opensubtitles/wiki/XMLRPC)中获取字幕,如下所示:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
//Opensubtitles listing
function data($request){
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml\r\nUser-Agent: PHPRPC/1.0\r\n",
'content' => $request
)));
$server = 'http://api.opensubtitles.org/xml-rpc'; // api url
$file = file_get_contents($server, false, $context);
$response = xmlrpc_decode($file);
return $response;
}
//Get token
$request = xmlrpc_encode_request("LogIn", array('', '', 'eng', 'TemporaryUserAgent'));
$token = data($request)['token'];
//Get listing
$request = xmlrpc_encode_request("SearchSubtitles", array(
'imdb' => '0462499',
'sublanguageid' => 'eng',
'season' => '',
'episode' => '',
'token' => $token
));
$response = data($request);
var_dump($response);
?>
然而,我一直得到401 Unauthorized。有谁知道如何解决这个问题?我知道这不是API的问题,因为我能够很好地检索令牌。
答案 0 :(得分:0)
尝试使用您的用户名/密码而不是空字符串。
并在Header中的TemporaryUserAgent中更改UserAgent,如下所示 http://trac.opensubtitles.org/projects/opensubtitles/wiki/DevReadFirst
答案 1 :(得分:0)
第二个请求应采用以下格式: -
$request = xmlrpc_encode_request("SearchSubtitles", array($token, array(array('sublanguageid' => 'eng', 'imdbid' => 'your_imdbid'))));
希望这有帮助。