May*_*hta 4 java android put amazon-s3 httpurlconnection
使用具有签名、到期日和访问密钥的预签名 URL 将文件上传到 Amazon S3,使用以下代码我可以使用普通的 java 代码上传文件,但在 Android 中相同的代码给了我 403 错误。使用 Amazon SDK 生成预签名 URL
我已阅读http://developer.android.com/reference/java/net/HttpURLConnection.html 和http://android-developers.blogspot.com/2011/09/androids-http-clients.html但无法阅读弄清楚我应该使用什么标头参数,我猜在 android 中它是在服务器拒绝的请求中设置标头
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("This text uploaded as object.");
out.close();
int responseCode = connection.getResponseCode();
Run Code Online (Sandbox Code Playgroud)
异常:403;签名不匹配:-o
有没有人遇到过这个问题?或者更多关于从android库在幕后添加哪些Header参数的细节?
请像这样设置您的内容类型:
connection.setRequestProperty("Content-Type"," ");
Run Code Online (Sandbox Code Playgroud)
因为 HttpsUrlConnection 的默认自动生成内容类型为:
"Content-Type: application/x-www-form-urlencoded"
Run Code Online (Sandbox Code Playgroud)
这将导致签名不匹配。
| 归档时间: |
|
| 查看次数: |
5344 次 |
| 最近记录: |