我正在测试api iugu.com以生成机票付款,并且我在帖子中返回信息时遇到了麻烦,因为有错误字典项目被发送到api(在php中)将是一个数组)
代码是这样的:
from flask import Flask, Response, jsonify
import requests
from requests.auth import HTTPBasicAuth
import json
app = Flask(__name__)
@app.route("/")
def index():
dados = {
'method':'bank_slip',
'email':'cliente@exemplo.com',
'items[]':[
{'description':'Item Um', 'quantity':1, 'price_cents': 100000},
{'description':'Item Dois', 'quantity':1, 'price_cents': 200000}
]
}
url = 'https://api.iugu.com/v1/charge'
user = '002f38a6d40b0275fc08aaac503a775b'
headers = {'content-type': 'application/json'}
r = requests.post(url, auth=HTTPBasicAuth(user, ''), headers = headers, params = json.dumps(dados))
return jsonify(
resposta = [
r.json(),
{
'status': r.status_code,
'cabecalho': r.headers['Content-Type'],
'params': dados,
'text': r.content,
'url': r.url
}
])
app.debug = True
app.use_reloader=True
app.run()
答案:
{
"resposta": [
{
"errors": "token n\u00e3o \u00e9 v\u00e1lido"
},
{
"cabecalho": "application/json; charset=utf-8",
"params": {
"email": "cliente@exemplo.com",
"items[]": [
{
"description": "Item Um",
"price_cents": 100000,
"quantity": 1
},
{
"description": "Item Dois",
"price_cents": 200000,
"quantity": 1
}
],
"method": "bank_slip"
},
"status": 400,
"text": "{\"errors\":\"token n\\u00e3o \\u00e9 v\\u00e1lido\"}",
"url": "https://api.iugu.com/v1/charge?%7B%22email%22:%20%22cliente@exemplo.com%22,%20%22items[]%22:%20[%7B%22price_cents%22:%20100000,%20%22description%22:%20%22Item%20Um%22,%20%22quantity%22:%201%7D,%20%7B%22price_cents%22:%20200000,%20%22description%22:%20%22Item%20Dois%22,%20%22quantity%22:%201%7D],%20%22method%22:%20%22bank_slip%22,%20%22format%22:%20%22json%22%7D"
}
]
}
如果您在网站示例中使用如下所示:
'items[][description]':'Item Um',
'items[][quantity]':'1',
'items[][price_cents]':'100000',
答案是正确的,但不能添加多个项目,因为它只排名第二。 还有另一种发送数据的方法,还是我做错了什么?
答案 0 :(得分:0)
iugu.com 的工作人员收到了提示,以检查通过curl发送的数据, postcatcher.in 。在那里,可以创建一个会话,并在启动此站点后将我的应用程序的URL指向浏览器中的URL。这使得有可能实时跟踪身体标签,如果数据是否被发送以及其他观察信息等其他信息(发现它非常酷)
通过这个网站,我看到它没有被发送或者你想要它的项目或任何东西,它帮助我看到请求的行是错误的。
使用正确的数据,而非使用参数。
一切正常。