我正在尝试连接到Moz API V2,使用HTTP请求文件获取内容功能,但我是新使用这个...你们能帮助我吗?
其文档中的HTPP请求示例:
POST /v2/url_metrics
Host: lsapi.seomoz.com
Content-Length: [length of request payload in bytes]
User-Agent: [user agent string]
Authorization: Basic [credentials]
{
"targets": ["facebook.com"]
}
下面是我正在尝试的代码:
$url = 'https://lsapi.seomoz.com/v2/url_metrics';
$domains = json_encode(['targets' => 'moz.com']);
$opts = ['http' =>
[
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded\r\n'.
("Authorization: Basic " . base64_encode("mozscape-XXXXX:XXXXX")),
'content-length' => strlen($domains),
'user-agent' => $_SERVER['HTTP_USER_AGENT'],
'content' => $domains,
]
];
$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);
print_r($result);
以下是文档的链接:https://moz.com/help/links-api/making-calls/url-metrics
当我打印结果时,我什么都没有得到,可能我缺少一些参数...:(
感谢您抽出宝贵时间:)
2条答案
按热度按时间2q5ifsrm1#
很有可能您只是发出了一个无效的请求,您将内容类型声明为
application/x-www-form-urlencoded
,但却将数据发送为application/json
。您还需要基本的错误处理(例如,在凭据无效的情况下)。
我会这样写:
老实说,sockets &
fopen
的级别很低,最好使用抽象层:例如Guzzle。omqzjyyz2#
对不起,我忘了在这里张贴之前的解决方案...
也许有人正在寻找如何使用moz API V2与PHP...