如何将base64编码的字符串转换为JSON字符串

时间:2016-09-17 14:57:46

标签: android json base64 okhttp3

这是我在服务器上上传图像的第一个Android应用程序。我使用okhttp3库将base64编码的字符串发送到服务器。

在我发送这个编码的字符串之前,我在logcat中打印它并通过在线base64解码到图像转换器并获得相同的图像但是当我将这个字符串转换为JSON字符串时,我只能看到部分base64编码的字符串。 / p>

我试图在互联网上找到这个答案,但没有得到任何解决方案。

这是我的代码,

class Background extends AsyncTask<String,String,String> {

    //getting base64 encoded string from Main Activity
    String encoded_string = new MainActivity().encoded_string;

    String image_name="Hello.jpg";

    Context context;
    String TAG = "Background";
    Background(Context c) {
        context=c;
    }

    @Override
    protected String doInBackground(String... params) {

        Log.d(TAG, "doInBackground: "+encoded_string); // Here I can see complete base64 encoded string

        JSONObject jsonObject=new JSONObject();
        String jsonString=null;
        try {
            jsonObject.put("image_name",image_name);
            jsonObject.put("encoded_string",encoded_string);
            jsonString=jsonObject.toString();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        Log.d(TAG, "doInBackground: "+jsonString);  // But here I am getting partial encoded string in JSON.

        OkHttpClient okHttpClient=new OkHttpClient();
        RequestBody requestBody= new FormBody.Builder()
                .add("jsonString",jsonString)
                .build();

        Request request=new Request.Builder()
                .url("https://b1b8540f.ngrok.io/feedthecow/uploadImage.php")
                .post(requestBody)
                .build();

        String responseIntoString=null;
        try {
            Response response=okHttpClient.newCall(request).execute();
            responseIntoString=response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return responseIntoString;
    }
}

0 个答案:

没有答案