Post 在 python3 中使用 GraphQL 正文请求
Post request in python3 with GraphQL Body
我正在尝试调用 Product Hunt V2 GraphQL API,
当我使用 Python "requests" 库执行 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 状态代码。
我做错了什么?
我解决了,显然我用错了json.dumps。
r = requests.post(url, headers=headerz, data=json.dumps(queryz))
我正在尝试调用 Product Hunt V2 GraphQL API, 当我使用 Python "requests" 库执行 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 状态代码。
我做错了什么?
我解决了,显然我用错了json.dumps。
r = requests.post(url, headers=headerz, data=json.dumps(queryz))