Python请求API客户端有一个如果运行失败则需要重新执行的函数。
Kitten(BaseClient):
def create(self, **params):
uri = self.BASE_URL
data = dict(**(params or {}))
r = self.client.post(uri, data=json.dumps(data))
return r
如果用
运行api = Kitten()
data = {"email": "bill@dow.com", "currency": "USD", "country": "US" }
r = api.create(**data)
问题是每当你运行它时,它第一次总是以GET的形式返回请求,即使它是POST。第一次发送帖子时,它会返回GET条目列表。
后来的请求,第二次及以后,api.create(** data)返回创建的新条目。
有一个获取和发布的status_code
# GET
r.status_code == 200
# POST
r.status_code == 201
当status_code为200时,重复执行的Python方法会更好,直到返回有效的201.
答案 0 :(得分:0)
如果您确定第二篇文章将始终返回您的预期值,您可以使用三元运算符再次执行检查:
Kitten(BaseClient):
def create(self, **params):
uri = self.BASE_URL
data = dict(**(params or {}))
r = self._get_response(uri, data)
return r if r.status_code == 201 else self._get_response(uri, data)
def _get_response(uri, data):
return self.client.post(uri, data=json.dumps(data)
否则你可以把它放在一个while循环中,条件是状态代码== 201。