OpenSubtitles API 401 Unauthorized 如何修复?
Posted
技术标签:
【中文标题】OpenSubtitles API 401 Unauthorized 如何修复?【英文标题】:OpenSubtitles API 401 Unauthorized how to fix? 【发布时间】:2018-02-06 02:08:06 【问题描述】:我正在尝试像这样从 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 没有问题,因为我能够很好地检索令牌。
【问题讨论】:
【参考方案1】:尝试使用您的用户名/密码而不是空字符串。
并在 Header 中更改 TemporaryUserAgent 中的 UserAgent,如下所示 http://trac.opensubtitles.org/projects/opensubtitles/wiki/DevReadFirst
【讨论】:
【参考方案2】:第二个请求应采用以下格式:-
$request = xmlrpc_encode_request("SearchSubtitles", array($token, array(array('sublanguageid' => 'eng', 'imdbid' => 'your_imdbid'))));
希望这会有所帮助。
【讨论】:
以上是关于OpenSubtitles API 401 Unauthorized 如何修复?的主要内容,如果未能解决你的问题,请参考以下文章
在代理后面使用 opensubtitles api Node.js/Python 包装器
Python:来自opensubtitles api的DownloadSubtitle方法返回空白数据
错误记录Android Studio 配置 GitHub 报错 ( Can‘t login using given credentials: Request response: 401 Una )(代
错误记录Android Studio 配置 GitHub 报错 ( Can‘t login using given credentials: Request response: 401 Una )(代
Angular2 中的 Http PUT 到 .NET Core Web API 提供来自预检请求的 http 401 错误