繁体   English   中英

Azure Storage Rest API Authentication Header for Java Android

[英]Azure Storage Rest API Authentication Header for Java Android

我正在研究 Android 项目,从 Azure Blob 存储下载图像,并且收到响应代码 400 授权 Header 无效。

URL url = new URL(src);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setDoInput(true);
                connection.setConnectTimeout(15000);
                connection.setReadTimeout(15000);
                connection.setRequestMethod("GET");
                Date date = new Date();
                connection.setRequestProperty("Authorization","SAS Signature here?");
                connection.setRequestProperty("x-ms-date", date.toString());
                connection.setRequestProperty("x-ms-version", "2021-02-12");
                connection.connect();
                int response = connection.getResponseCode();
                Log.e("Response Code:",String.valueOf(response));
                Log.e("Response Message:",connection.getResponseMessage());
                InputStream input = connection.getInputStream();
                myBitmap = BitmapFactory.decodeStream(input);
                Log.e("Bitmap","returned");

如果您使用的是 SAS 令牌,您实际上不必做任何您正在做的事情,因为 SAS 令牌具有所有必要的授权信息。 您所要做的就是使用 SAS URL(blob 端点 + SAS 令牌)创建连接,您应该能够下载 blob。

就像是:

URL url = new URL(src);//src would be something like https://account.blob.core.windows.net/container/blob.bmp?sastoken
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setConnectTimeout(15000);
connection.setReadTimeout(15000);
connection.setRequestMethod("GET");
connection.connect();
int response = connection.getResponseCode();
Log.e("Response Code:",String.valueOf(response));
Log.e("Response Message:",connection.getResponseMessage());
InputStream input = connection.getInputStream();
myBitmap = BitmapFactory.decodeStream(input);
Log.e("Bitmap","returned");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM