使用 GraphQL Body 在 python3 中发布请求

Posted

技术标签:

【中文标题】使用 GraphQL Body 在 python3 中发布请求【英文标题】:Post request in python3 with GraphQL Body 【发布时间】:2020-03-03 10:48:27 【问题描述】:

我正在尝试调用 Product Hunt V2 GraphQL API, 当我使用 Python“请求”库发出 POST 请求时,出现以下错误

'error': 'Bad Request', 'status': 400

我在 Postman 中使用 GraphQL 正文类型尝试了相同的请求,并成功获得了 200 状态代码,所以我认为问题出在我在请求正文中传递 GraphQL 代码的方式上。这是我使用的代码:

import requests, json

url = "https://api.producthunt.com/v2/api/graphql" 

payload = 
  "query": "query  posts(first: 1)  edges  node  id, name    "


header = 
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer MYTOKEN",
"Host": "https://api.producthunt.com/v2/api/graphql"
 


response_decoded_json = requests.post(url, headers=header, data=payload)
response_json 

查看引用我尝试使用“json.dumps”在 Json 中对有效负载进行编码,但我总是得到相同的 400 状态代码。

我做错了什么?

【问题讨论】:

【参考方案1】:

我解决了,显然我错误地使用了 json.dumps。

r = requests.post(url, headers=headerz, data=json.dumps(queryz))

【讨论】:

以上是关于使用 GraphQL Body 在 python3 中发布请求的主要内容,如果未能解决你的问题,请参考以下文章

Nestjs graphql 上传错误:缺少 POST 正文。你忘记使用 body-parser 中间件了吗?

如何在 Body 中传递查询数据以在 graphql 中进行 REST API 调用

GraphQL。如何编写解析器

如何使用 graphql 获得 drupal 节点的特定翻译

如何使用 Github GraphQL Api 创建问题和标签?

如何使用 GRAPHQL 测试 e2e Nestjs API