1

安全なWebサイトからinputStreamを取得し、それをビットマップに変換して表示しようとしています。私が今コードを設定している方法(ログにはバイト配列の長さなどが表示されています)は、エラーが

01-25 10:29:44.857:D / skia(13452):--- SkImageDecoder::Factoryがnullを返しました

ただし、そのバイト配列の長さチェックは次のように応答します。

01-25 10:29:44.834:W /バイト長(13452):21844

これは私のバイト配列が正しくダウンロードされていないことを意味しているに違いないと思いますが、それを確認する方法/とにかく修正する方法がわかりません。

セキュリティを処理する方法がデータに何らかの影響を与えていないことを確認したいので、defaultHttpClientコードを含めました。

HttpPost post = new HttpPost("https://my.patlive.com//mailbox/messages/get.aspx?MsgID=" + messageId + "&format=bmp");

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);

nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("password", password));

post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

BitmapFactory.Options o = new BitmapFactory.Options();

o.inJustDecodeBounds = true;

InputStream is = httpclient.execute(post).getEntity().getContent();
byte[] bytes = readFully(is);

Log.w("bytes length", "" + bytes.length);

bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

事前のおかげで、これは数日間私を困惑させてきました。

4

0 に答える 0