使用 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 获得 drupal 节点的特定翻译