提问者:小点点

谷歌安全浏览4.0API返回400状态


我已经用API密钥设置好了,并且已经编写了PHP服务器端代码,可以根据URL获取Google安全浏览[GSB]状态。这里介绍了GSB查找API的第4版-

{"client":{"clientId":"yourcompanyname","clientVersion":"152"},"threatInfo":{"threatTypes":["MALWARE","SOCIAL_ENGINEERING"],"platformTypes":["WINDOWS","threatEntryTypes":["URL"],"threatEntries":[{"url":"wwwurltocheck1org/"}]}}

我从php curl得到一个400 HTTP状态返回,并且出现以下错误:

"message": "Invalid JSON payload received. Unknown name \"{\"client\":{\"clientId\":\"yourcompanyname\",\"clientVersion\":\"152\"},\"threatInfo\":{\"threatTypes\":[\"MALWARE\",\"SOCIAL_ENGINEERING\"],\"platformTypes\":[\"WINDOWS\",\"threatEntryTypes\":[\"URL\"],\"threatEntries\":[{\"url\":\"wwwurltocheck1org/\"}]}}\": Cannot bind query parameter. Field '{\"client\":{\"clientId\":\"yourcompanyname\",\"clientVersion\":\"152\"},\"threatInfo\":{\"threatTypes\":[\"MALWARE\",\"SOCIAL_ENGINEERING\"],\"platformTypes\":[\"WINDOWS\",\"threatEntryTypes\":[\"URL\"],\"threatEntries\":[{\"url\":\"wwwurltocheck1org/\"}]}}' could not be found in request message.",

我会指出,它说“未知的名字”,然后引用我的整个帖子内容,就好像整个帖子内容被解释为一个“名字”。但是它说“无法绑定查询参数”,并(再次)引用所有的POST内容,就好像它认为这是一个单独的字段一样。在这种情况下,什么是“场”?这让我难倒了。

是的,我正在添加application/json头:

[Content-Type] => application/json

在以下位置点击GSB API:

[url] => https://safebrowsing.googleapis.com/v4/threatMatches:find?key=MY_KEY

php curl告诉我它从GSB服务收到了JSON:

[content_type] => application/json; charset=UTF-8

有人知道这些信息是什么意思吗?"无效的JSON负载..."和"无法绑定查询参数."-我根本无法与它们联系起来。


共2个答案

匿名用户

从带有额外“\”的错误响应判断,在不需要的情况下,您正在编码json字符串。

i、 e如果您有$json='{“key”:“value”}'作为json,您似乎也在应用json\u encode($json)到该字符串。您不需要这样做-您可以只使用字符串而不进行编码,因为它已经是要处理的正确格式。我希望这是什么,是有帮助的!

匿名用户

在JSON中,platformTypes似乎没有一个方括号。

你有"platformTypes":["WINDOWS","威胁EntryTypes":......"WINDOWS"后面应该有一个']'。