您好我正在考虑建立一个网页,使用MWS API从亚马逊卖家中心下载报告。我遇到的问题是下载一份报告需要3个不同的电话!
请求报告并获取其ID->检查状态/获取报告ID - >下载报告。
目前我运行3个单独的按钮需要按顺序点击,我将如何进行第二次api调用等待第一个按钮返回特定值等等。
http://docs.developer.amazonservices.com/en_UK/reports/index.html
答案 0 :(得分:1)
由于您说您是从网页上执行此操作,因此我认为您选择的语言是JavaScript。以下是进行调用以及链接其他调用的JavaScript示例。根据您使用的库/框架,您可以利用promises,observables或回调。
承诺(不要忘记检查错误,我不会检查我的示例):
http.get(reportUrl).then(reportResponse => {
http.get(checkStatusUrl + reportResponse.id).then(statusResponse => {
http.get(finalUrl + statusResponse.id).then(finalResponse => {
console.log(finalResponse);
})
})
})
<强>观测量强>:
http.get(reportUrl).subscribe(reportResponse => {
http.get(checkStatusUrl + reportResponse.id).subscribe(statusResponse => {
http.get(finalUrl + statusResponse.id).subscribe(finalResponse => {
console.log(finalResponse);
})
})
})
<强>回调强>:
http.get(reportUrl, reportResponse => {
http.get(checkStatusUrl + reportResponse.id, statusResponse => {
http.get(finalUrl + statusResponse.id, finalResponse => {
console.log(finalResponse);
})
})
})
如果您使用的是服务器端语言,那么您的API应该或多或少相同。发出第一个请求,等待其响应。使用响应发出第二个请求,依此类推。
答案 1 :(得分:0)
您基本上有两个选择:
由于MWS报告有时需要很长时间(有时> 1小时),您可能不得不更改PHP设置以允许这样一个长时间运行的脚本。我亲自采用方法2。
答案 2 :(得分:0)
如果你进行ajax调用,
async: false