首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“接收到无效的JSON有效负载。未知名称”错误

如何修复“接收到无效的JSON有效负载。未知名称”错误
EN

Stack Overflow用户
提问于 2019-04-26 02:39:01
回答 1查看 13.8K关注 0票数 4

我尝试从Google Safe浏览API v4获得适当的响应。尽管我收到错误消息“接收到无效的JSON有效负载。未知名称”。

我使用了基于https://developers.google.com/safe-browsing/v4/lookup-api中提到的有效负载示例的有效负载

我对有效载荷有问题。我认为它应该是一个字符串,而不是一个真正的字典。当我使用一个字典时,我得到这样的错误: TypeError:有类型,但应该是: str,unicode

我使用的代码是:

代码语言:javascript
复制
result = urlfetch.fetch(url, method=urlfetch.POST, payload=payload)

url是( api-key当然是我的api-key):

代码语言:javascript
复制
https://safebrowsing.googleapis.com/v4/threatMatches:find?key=[api-key]

有效负载是以下字符串(不是python dict):

代码语言:javascript
复制
{
  "client": { 
     "clientId": "myproject", 
     "clientVersion": "42" }, 
  "threatInfo": { 
     "threatTypes": ["MALWARE", "SOCIAL_ENGINEERING"], 
     "platformTypes": ["WINDOWS"], 
     "threatEntryTypes": ["URL"], 
     "threatEntries": [ {"url":"http://www.example.com/"} ] } 
}

作为输出,我期望一些JSON,这表明这个url是安全的。然而,我得到了以下结果:

代码语言:javascript
复制
{ 
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"{\n    \"client\": {\n      \"clientId\":      \"myproject\",\n      \"clientVersion\": \"42\"\n    },\n    \"threatInfo\": {\n      \"threatTypes\":      [\"MALWARE\", \"SOCIAL_ENGINEERING\"],\n      \"platformTypes\":    [\"WINDOWS\"],\n      \"threatEntryTypes\": [\"URL\"],\n      \"threatEntries\": [\n        {\"url\":\"http://www.example.com/\"}\n      ]\n    }\n  }\": Cannot bind query parameter. Field '{\n    \"client\": {\n      \"clientId\":      \"myproject\",\n      \"clientVersion\": \"42\"\n    },\n    \"threatInfo\": {\n      \"threatTypes\":      [\"MALWARE\", \"SOCIAL_ENGINEERING\"],\n      \"platformTypes\":    [\"WINDOWS\"],\n      \"threatEntryTypes\": [\"URL\"],\n      \"threatEntries\": [\n        {\"url\":\"http://www' could not be found in request message.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "description": [similar as the message above]
          }
        ]
      }
    ]
  }
}

有什么想法,出什么问题了吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-30 15:25:33

urlfetch应包含头部Content-Type: application/json

代码语言:javascript
复制
result = urlfetch.fetch(url, method=urlfetch.POST, payload=payload, headers={'Content-Type': 'application/json'})
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55855697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档