我正在努力调试我目前使用Box-API的问题。鉴于几千个用户文件,我能够始终如一地成功下载大部分文件,但其他文件始终因以下响应而失败:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>Either the Signature query string parameter or the Authorization header should be specified, not both</Message><ArgumentValue>BoxAuth api_key=<removed>&auth_token=<removed></ArgumentValue><ArgumentName>Authorization</ArgumentName><RequestId>83572B6EE6CCAF05</RequestId><HostId>MDk4PiUtdr/RS4vqd7p5Qw1MwohBHkhs35dLf6KWZx+11VBQtbTurwq0wVF9QTPC</HostId></Error>
这是从https://api.box.com/2.0/files/ $ ID /内容端点返回的302重定向的位置返回的。对于大多数文件,这可以正常工作,但由于某些原因,某些文件始终没有。在传递和失败的情况下,我已经将请求的标头捕获到重定向网址,并且看不出任何差异:
传递案例:
GET /bc/1/91652da319a59980c374f9059718080e/JolueqOGpciD6dgYhecNBoVpYxkvmYe1ZLheZor6BF4DUBIelMQTkFwYIys3nIibNIIEHUp447tBZLaXDzIbNQ,,/98713569dfe691813e006a1651c7c3e6/ HTTP/1.1
Host: dl.boxcloud.com
Accept: */*
Authorization: BoxAuth api_key=<removed>&auth_token=<removed>
失败案例:
GET /bc/1/44d67f0a3e406676711cbd18cc657696/JolueqOGpciD6dgYhecNBoVpYxkvmYe1ZLheZor6BF4DUBIelMQTkFwYIys3nIibNIIEHUp447tBZLaXDzIbNQ,,/405f32a3d6d6e1240832ab14a08e6d99/ HTTP/1.1
Host: dl.boxcloud.com
Accept: */*
Authorization: BoxAuth api_key=<removed>&auth_token=<removed>
我在调试思想方面遇到了障碍,所以我愿意接受建议。
答案 0 :(得分:0)
事实证明,这是Curl如何在重定向中维护标头,以及dl.boxcloud.com上的重定向网址对框的授权标头不容忍的问题。我通过将curl的FOLLOWLOCATION设置为false来修复问题,而是在清除了我的请求中的所有标题后手动跟踪重定向。
目前尚不清楚为什么这只发生在某些请求上,而不是其他请求上。我还不清楚为什么后端会对这种行为如此敏感。