2012-11-08 33 views
0

我正在努力调试我目前与Box-API有关的问题。鉴于一个用户的文件我能够一直成功下载的大多数文件的几千元,但其他文件都始终与以下响应失败: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>&amp;auth_token=<removed></ArgumentValue><ArgumentName>Authorization</ArgumentName><RequestId>83572B6EE6CCAF05</RequestId><HostId>MDk4PiUtdr/RS4vqd7p5Qw1MwohBHkhs35dLf6KWZx+11VBQtbTurwq0wVF9QTPC</HostId></Error> 

这正从302重定向返回的位置返回由https://api.box.com/2.0/files/ $ ID /内容端点。对于大多数文件这可以正常工作,但由于某些原因某些文件一贯不会。我拍摄的请求,在两个路过的和失败的情况下重定向URL的标题和看不出任何区别:

传案例:

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

事实证明,这是Curl如何在重定向之间维护标题的问题,再加上dl.boxcloud.com不允许重定向url到授权标头。我通过将curl的FOLLOWLOCATION设置为false来解决问题,而在清除请求中的所有标题后,手动跟踪重定向。

目前尚不清楚为什么这只发生在某些请求,而不是其他人。我还不清楚为什么后端会对这种行为非常敏感。