GET rest api返回
< HTTP/1.1 200 OK
< rlogid: t6elbbolst2%3F%3Ckuv%60ng%60jnvv7*6565%3B37-17d3a004c7d-0x233d
< content-range: nodes 1-397/397
< x-ebay-request-id: 17d3a004-c7e0-a4cc-d414-b222ff7438ae!Ginger.LIST FOLDER.GET!lvsfidelius1-5002861.stratus.lvs.ebay.com!r1fidelius1[]
< content-type: application/json
< content-length: 173
< date: Fri, 19 Nov 2021 21:00:37 GMT
< x-envoy-upstream-service-time: 11
< server: ebay server
我正在使用
request
单元现在我要打两个电话
-
第一个电话让我得到
total
从…起
content-range
-
第二个调用通过传递total来调用api以获取所有内容
我正在使用while循环
def get_children(self, size=500):
while True:
url = "{}/list?size={}".format(
self.endpoint, size)
result = requests.get(url, verify=False)
result.raise_for_status()
if 'content-range' in result.headers:
crange = result.headers['content-range']
size = int(
re.match(ur'^nodes \d+-(\d+)\/(\d+)$', crange).group(1))
total = int(
re.match(ur'^nodes \d+-(\d+)\/(\d+)$', crange).group(2))
if size < total:
size = total
else:
break
return result.json()
我觉得有更好的方法。有什么建议吗?