android ——Okhttp 多參數(shù)表單提交圖片給服務(wù)器

表單上傳圖片

private voiduploadMultiFile() {

finalFile file = FileUtils.getSmallBitmap(mFile.getPath());

Uri uri = Uri.fromFile(file);

Log.e(TAG,"path:"+path);

Log.e(TAG,"mFile:"+ String.valueOf(mFile));

Log.e(TAG,"file:"+ String.valueOf(file));

Log.e(TAG,"uri:"+ String.valueOf(uri));

RequestBody fileBody = RequestBody.create(MediaType.parse("image"), newFile(getCachePath(this),"user-avatar.jpg"));

RequestBody requestBody =newMultipartBody.Builder()

.setType(MultipartBody.FORM)

.addFormDataPart("image[]","user-avatar.jpg",fileBody)

.addFormDataPart("uid",MeManager.getUid())

.addFormDataPart("token",MeManager.getToken())

.build();

Request request =newRequest.Builder()

.url(NetConfig.HOST+HEAD_CHANGE)

.post(requestBody)

.build();

finalokhttp3.OkHttpClient.Builder httpBuilder =newOkHttpClient.Builder();

OkHttpClient client = httpBuilder

.connectTimeout(10,TimeUnit.SECONDS)

.writeTimeout(15,TimeUnit.SECONDS)

.build();

client.newCall(request).enqueue(newCallback() {

@Override

public voidonFailure(Call call,IOException e) {

Log.e(TAG,"uploadMultiFile() e="+ e);

runOnUiThread(newRunnable() {

@Override

public voidrun() {

ToastUtils.showToast(R.string.request_failed);

}

});

}

@Override

public voidonResponse(Call call,Response response)throwsIOException {

String result = response.body().string();

try{

Log.e(TAG,"修改頭像:"+ result);

JSONObject jsonObject =newJSONObject(result);

String code = jsonObject.getString("code");

if(code.equals("s_ok")) {

runOnUiThread(newRunnable() {

@Override

public voidrun() {

ToastUtils.showToast(R.string.change_head_success);

}

});

}else if(code.equals("error")) {

String error = jsonObject.getString("message");

runOnUiThread(newRunnable() {

@Override

public voidrun() {

ToastUtils.showToast(R.string.request_failed+error);

}

});

}

}catch(JSONException e) {

e.printStackTrace();

}

}

});

}

post請(qǐng)求

public voidPost(Viewv) {

String url=post_url.getText().toString();

String key=post_key.getText().toString();

String value=post_value.getText().toString();

okhttp3.OkHttpClient.Builder httpBuilder=newOkHttpClient.Builder();

OkHttpClient client=httpBuilder

.connectTimeout(30,TimeUnit.SECONDS)

.writeTimeout(30,TimeUnit.SECONDS)

.writeTimeout(180,TimeUnit.SECONDS)

.build();

FormBody.Builder builder=newFormBody.Builder();

/*添加兩個(gè)參數(shù)*/

builder.add(key,value);

FormBody body=builder.build();

Request request=newRequest

.Builder()

.url(url)

.post(body)

.build();

client.newCall(request).enqueue(newCallback() {

public voidonResponse(Callcall,Responseresponse)throwsIOException{

finalString bodyStr= response.body().string();

final booleanok= response.isSuccessful();

runOnUiThread(newRunnable() {

public voidrun() {

if(ok) {

text_show.setText(bodyStr);

Toast.makeText(TestPostactivity.this,bodyStr,Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(TestPostactivity.this,"server error : "+bodyStr,Toast.LENGTH_SHORT).show();

}

}

});

}

public voidonFailure(Callcall, finalIOExceptione) {

runOnUiThread(newRunnable() {

public voidrun() {

Toast.makeText(TestPostactivity.this,"error : "+e.toString(),Toast.LENGTH_SHORT).show();

}

});

}

});

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評(píng)論 19 139
  • 一、簡(jiǎn)介 OKHttp是一款高效的HTTP客戶端,支持連接同一地址的鏈接共享同一個(gè)socket,通過連接池來減小響...
    Mr丶sorrow閱讀 711評(píng)論 0 2
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,311評(píng)論 0 17
  • 一、簡(jiǎn)介 Retrofit是Square公司開發(fā)的一款針對(duì)Android網(wǎng)絡(luò)請(qǐng)求的框架,Retrofit2底層基于...
    Devil不加V閱讀 670評(píng)論 0 0
  • 在包名下單獨(dú)建一個(gè)包 wxapi =========== import android.graphics.Bit...
    未聞椛洺閱讀 1,053評(píng)論 0 1

友情鏈接更多精彩內(nèi)容