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<String, Integer, String> { 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(); } } }