Image upload using okHttp

后端 未结 4 1235
無奈伤痛
無奈伤痛 2020-11-28 10:56

i want to upload image using okhttp but i am not able to find MultipartBuilder for Post Image.What can i use instead of this.

Here is my code

<
4条回答
  •  一个人的身影
    2020-11-28 11:56

    I used this way in OKHTTP 3.4.1

    Call function like this

    if (!realPath.equals("")) {
    
                new SignupWithImageTask().execute(et_name.getText().toString(), et_email.getText().toString(), et_dob.getText().toString(), IMEI, et_mobile.getText().toString(), realPath);
    
            } else {
                Toast.makeText(this, "Profile Picture not found", Toast.LENGTH_SHORT).show();
            }
    

    SignupWithImageTask

      public class SignupWithImageTask extends AsyncTask {
    
            ProgressDialog progressDialog;
    
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                progressDialog = new ProgressDialog(SignupActivity.this);
                progressDialog.setMessage("Please Wait....");
                progressDialog.show();
            }
    
            @Override
            protected String doInBackground(String... str) {
    
                String res = null;
                try {
    //                String ImagePath = str[0];
                    String name = str[0], email = str[1], dob = str[2], IMEI = str[3], phone = str[4], ImagePath = str[5];
    
                    File sourceFile = new File(ImagePath);
    
                    Log.d("TAG", "File...::::" + sourceFile + " : " + sourceFile.exists());
    
                    final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/*");
    
                    String filename = ImagePath.substring(ImagePath.lastIndexOf("/") + 1);
    
                    /**
                     * OKHTTP2
                     */
    //            RequestBody requestBody = new MultipartBuilder()
    //                    .type(MultipartBuilder.FORM)
    //                    .addFormDataPart("member_id", memberId)
    //                    .addFormDataPart("file", "profile.png", RequestBody.create(MEDIA_TYPE_PNG, sourceFile))
    //                    .build();
    
                    /**
                     * OKHTTP3
                     */
                    RequestBody requestBody = new MultipartBody.Builder()
                            .setType(MultipartBody.FORM)
                            .addFormDataPart("image", filename, RequestBody.create(MEDIA_TYPE_PNG, sourceFile))
                            .addFormDataPart("result", "my_image")
                            .addFormDataPart("name", name)
                            .addFormDataPart("email", email)
                            .addFormDataPart("dob", dob)
                            .addFormDataPart("IMEI", IMEI)
                            .addFormDataPart("phone", phone)
                            .build();
    
                    Request request = new Request.Builder()
                            .url(BASE_URL + "signup")
                            .post(requestBody)
                            .build();
    
                    OkHttpClient client = new OkHttpClient();
                    okhttp3.Response response = client.newCall(request).execute();
                    res = response.body().string();
                    Log.e("TAG", "Response : " + res);
                    return res;
    
                } catch (UnknownHostException | UnsupportedEncodingException e) {
                    Log.e("TAG", "Error: " + e.getLocalizedMessage());
                } catch (Exception e) {
                    Log.e("TAG", "Other Error: " + e.getLocalizedMessage());
                }
    
    
                return res;
    
            }
    
            @Override
            protected void onPostExecute(String response) {
                super.onPostExecute(response);
                if (progressDialog != null)
                    progressDialog.dismiss();
    
                if (response != null) {
                    try {
    
                        JSONObject jsonObject = new JSONObject(response);
    
    
                        if (jsonObject.getString("message").equals("success")) {
    
                            JSONObject jsonObject1 = jsonObject.getJSONObject("data");
    
                            SharedPreferences settings = getSharedPreferences("preference", 0); // 0 - for private mode
                            SharedPreferences.Editor editor = settings.edit();
                            editor.putString("name", jsonObject1.getString("name"));
                            editor.putString("userid", jsonObject1.getString("id"));
                            editor.putBoolean("hasLoggedIn", true);
                            editor.apply();
    
                            new UploadContactTask().execute();
    
                            startActivity(new Intent(SignupActivity.this, MainActivity.class));
                        } else {
                            Toast.makeText(SignupActivity.this, "" + jsonObject.getString("message"), Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                } else {
                    Toast.makeText(SignupActivity.this, "Something Went Wrong", Toast.LENGTH_SHORT).show();
                }
    
            }
        }
    

提交回复
热议问题