Base64未正确解码

时间:2017-05-08 19:15:32

标签: php android bitmap

我知道这个问题已被问过很多次但我无法找到正确的解决方案。我在这里做的是服务器上总共有7个图像。服务器获取其中每个内容,然后将其转换为base64。然后它将这些字符串中的每一个逐个发送回android客户端。以下是代码:

StringRequest stringRequest = new StringRequest(Request.Method.POST, my_url,
new Response.Listener<String>() {
    LinearLayout layout = (LinearLayout)findViewById(R.id.linearView);

    int index=0;

    @Override
    public void onResponse(String s) {
        //Disimissing the progress dialog

        loading.dismiss();
        //Showing toast message of the response
        // Toast.makeText(DisplayResults.this, s, Toast.LENGTH_LONG).show();
        System.out.println("nofatima"+s);
        ImageView layout = (ImageView)findViewById(R.id.m0);

        byte[] decodedString = Base64.decode(s.replace("/",""), Base64.DEFAULT);

        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

        layout.setImageBitmap(decodedByte);
        layout.setImageBitmap(Bitmap.createScaledBitmap(decodedByte, decodedByte.getWidth(), decodedByte.getHeight(), false));

这是服务器返回的Base64

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwMEAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx//2wBDAQcHB

当然有更多的字符串,但我不是在这里添加整个字符串。这是我得到的错误

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.fatima.cgir, PID: 6811
java.lang.IllegalArgumentException: bad base-64
    at android.util.Base64.decode(Base64.java:161)
    at android.util.Base64.decode(Base64.java:136)
    at android.util.Base64.decode(Base64.java:118)
    at com.example.fatima.cgir.DisplayResults$1.onResponse(DisplayResults.java:91)
    at com.example.fatima.cgir.DisplayResults$1.onResponse(DisplayResults.java:76)
    at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
    at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
    at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6692)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

我确实意识到这个例外是因为我正在替换&#34;&#34;但是当我不添加此语句时,它会返回null异常。我猜的是因为它没有被正确解码。可能是什么问题?

0 个答案:

没有答案