我正在嘗試使用免費的 api https://www.qrcode-monkey.com,但我在任何地方都找不到 python 的有效示例,我想我是按照檔案進行的。我正在做一些試驗,在POST上我繼續收到方法錯誤,在GET上我收到很多 400 錯誤......
這是兩者的代碼,有人知道我做錯了什么嗎?謝謝!
import requests
from urllib.parse import quote, urlencode
class QrManager:
def __init__(self):
self.url = "https://qrcode-monkey.com/"
def get_data_post(self):
url = self.url "qr/custom"
payload = {
"data": "https://www.google.com",
"config": {
"body": "circle",
},
"size": 300,
"download": False,
"file": "png"
}
req = requests.post(url, json=payload)
return req
def get_data_get(self):
template_url = self.url "qr/custom/?{}"
params = {
"data": "https://www.google.com",
"config": {
"body": "circle",
},
"size": 300,
"download": False,
"file": "png"
}
url = template_url.format(urlencode(params, safe="()", quote_via=quote))
req = requests.get(url)
return req
qrm = QrManager()
# response = dm.get_data_post()
response = qrm.get_data_get()
print(response.status_code)
print(response.url)
print(response.text)
uj5u.com熱心網友回復:
他們沒有在檔案中顯示它,但它需要不同的 URL - 用api.而不是www.
https://api.qrcode-monkey.com/qr/custom
我DevTools在 Firefox/Chrome (tab: Network) 中使用來查看頁面生成 QR 時使用的 url。
還有其他問題。
POST給予但QR給予正常。circlesGETsquares
GET需要轉換config為json得到circles
"config": json.dumps({"body": "circle"})
(但它不需要urlencode)
完整的代碼。
import requests
#from urllib.parse import quote, urlencode
import json
class QrManager:
def __init__(self):
self.url = "https://api.qrcode-monkey.com/qr/custom"
def get_data_post(self):
# it converts `config` to `json` automatically (because it sends all `payload` as `json`)
payload = {
"data": "https://blog.furas.pl",
"config": {
"body": "circle",
},
"size": 300,
"download": False,
"file": "png"
}
response = requests.post(self.url, json=payload)
return response
def get_data_get(self):
# it needs to convert `config` to `json` manually
payload = {
"data": "https://blog.furas.pl",
"config": json.dumps({
"body": "circle"
}),
"size": 300,
"download": False,
"file": "png"
}
#payload = urlencode(payload, safe="()", quote_via=quote)
response = requests.get(self.url, params=payload)
return response
# --- main ---
qrm = QrManager()
print('\n--- GET ---\n')
response = qrm.get_data_get()
print('status:', response.status_code)
print('url:', response.url)
print(response.text[:100])
with open('QR_GET.png', 'wb') as f:
f.write(response.content)
print('\n--- POST ---\n')
response = qrm.get_data_post()
print('status:', response.status_code)
print('url:', response.url)
print(response.text[:100])
with open('QR_POST.png', 'wb') as f:
f.write(response.content)
結果:
--- GET ---
status: 200
url: https://api.qrcode-monkey.com/qr/custom?data=https://blog.furas.pl&config={"body%22: "circle%22}&size=300&download=False&file=png
?PNG
IHDR\\t?{bKGD????????IDATx??ON[????6#?P??h?#H? ??[??M??T=3@J
--- POST ---
status: 200
url: https://api.qrcode-monkey.com/qr/custom
?PNG
IHDR\\t?{bKGD????????IDATx??ON[????6#?P??h?#H? ??[??M??T=3@J
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/450073.html
上一篇:如何在使用vanillaJS提交表單時從公共API獲取資料
下一篇:PythonLambda字典排序
