美文网首页
android ——Okhttp 多参数表单提交图片给服务器

android ——Okhttp 多参数表单提交图片给服务器

作者: 未聞椛洺 | 来源:发表于2017-08-21 08:48 被阅读0次

表单上传图片

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请求

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();

/*添加两个参数*/

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();

}

});

}

});

}

}

相关文章

  • android ——Okhttp 多参数表单提交图片给服务器

    表单上传图片 private voiduploadMultiFile() { finalFile file = F...

  • struts2|action接收来自jsp的参数?

    一、jsp向服务器提交参数的方法如下: Form表单提交。 request.setAttribute();和req...

  • FormData

    表单,FormData 对象 表单概述 表单用来收集用户提交的数据,发送到服务器 表单提交 1. 提交 表单里...

  • POST请求之表单上传图片

    POST请求之表单上传图片 表单上传: 表单上传一般是用于上传大型文件给服务器,比如图片、视频、音频等,由于服务器...

  • 5.1 django 表单 使用表单渲染

    表单: HTML中的表单: 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Djan...

  • 最浅显易懂的Django系列教程(34)-表单概述

    表单: HTML中的表单: 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Djan...

  • 表单提交

    发送数据给服务器 form 标签是表单标签 action 属性设置提交的服务器地址 method 属性设置提交的方...

  • 第六章HTML表单API(上)

    HTML表单主要用于收集用户输入或选择的数据,作为参数提交给远程服务器,提供了一些交互控件。6.1.1表单标签 定...

  • form表单

    form表单标签 收集用户信息 提交到服务器 name:表单提交时的名称 action 提交到地址 method ...

  • 表单,FormData 对象

    表单概述 表单( )用来收集用户提交的数据,发送到服务器。比如,用户提交用户名和密码,让服务器验证,就要通过表单。...

网友评论

      本文标题:android ——Okhttp 多参数表单提交图片给服务器

      本文链接:https://www.haomeiwen.com/subject/mcxcdxtx.html