我有一个通过 Insomnia 生成的 curl 代码,它工作正常。我只是想不出用 python 请求复制它。
curl --request POST \
--url MY_SERVER_URL \
--header 'Accept: application/json' \
--header 'Content-type: multipart/form-data; boundary=---011000010111000001101001' \
--header 'Authorization: AUTH_TOKEN' \
--form 'operations={
"query": "mutation($file: Upload!, $path: String!, $private: Boolean) { uploadFile(file: $file, path: $path, private: $private) }",
"variables": {
"file": null,
"path": "test",
"private": false
}
}' \
--form 'map={ "0": ["variables.file"] }' \
--form '0=@E:\Development\Technology\Python\small_utilities\barwis\random-files\files\csvs\above serious.csv'
谢谢
最佳答案
我找到了解决方案。如果有人有同样的问题,这里是引用代码。
file = open('FILE_PATH', 'rb')
auth_headers = {
"Authorization": f"Bearer {token}"
}
query = """
mutation($file: Upload!, $path: String!, $private: Boolean) {
uploadFile(file: $file, path: $path, private: $private)
}
"""
variables = {
"file": None,
"path": 'test',
"private": True
}
operations = json.dumps({
"query": query,
"variables": variables
})
map = json.dumps({ "0": ["variables.file"] })
response = requests.post(graphql_url, data = {
"operations": operations,
"map": map
},
files = {
"0" : file
},
headers = auth_headers
)
关于python - 如何使用 python 请求使用 graphql 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68033437/