直接上代码

接口请求代码

NewResultApi.modifyUserInfo(userModel.getUid(), userModel.getToken(), sex, intro,
name, city, birthday,new File(filename), new ICallBack<BaseResultBean<UserDetails>>() {
@Override
public void onSuccess(String flag, String key, BaseResultBean<UserDetails> userDetailsBaseResultBean) {
UserDateilsTable.getUserDao(context).saveContactList(
userDetailsBaseResultBean.getResult(), "1");
ToastUtil.show(context, getString(R.string.toast_save_succeed));
UserInfoActivity.this.finish();
pd.dismiss();
} @Override
public void onFailure(String flag, String key, String why) {
pd.dismiss();
ToastUtil.show(context, why);
}
});

  

public static Call<BaseResultBean<UserDetails>> modifyUserInfo(int uid, String token, String sex, String intro, String username, String city,
String birthday, File imagePath, final ICallBack<BaseResultBean<UserDetails>> callBack){ MultipartBody.Part filePart = MultipartBody.Part.
createFormData("icon", imagePath.getName(), RequestBody.create(MediaType.parse("image/*"), imagePath));
Call<BaseResultBean<UserDetails>> call=BuildService.getMeiNvService().modifyUserInfo(stringRequestBody(AppConfig.VER+""),
stringRequestBody("user_modify_userinfo"),
stringRequestBody(uid+""),stringRequestBody(token),stringRequestBody(sex),stringRequestBody(intro),stringRequestBody(username),
stringRequestBody(city),stringRequestBody(birthday), filePart);
call.enqueue(new Callback<BaseResultBean<UserDetails>>() {
@Override
public void onResponse(Call<BaseResultBean<UserDetails>> call, Response<BaseResultBean<UserDetails>> response) {
if (response.isSuccessful()) {
BaseResultBean<UserDetails> resultBean = response.body();
if (resultBean.getCode() == 200) {
//数据正确,把数据返回
callBack.onSuccess("", "", resultBean);
} else {
//数据错误
callBack.onFailure("", "", resultBean.getMsg());
}
}
} @Override
public void onFailure(Call<BaseResultBean<UserDetails>> call, Throwable t) {
callBack.onFailure("", "", "失败");
}
});
return call;
};

  

 @Multipart
@POST("api.ashx")
Call<BaseResultBean<UserDetails>> modifyUserInfo(@Part("ver") RequestBody ver,
@Part("action") RequestBody action,
@Part("uid") RequestBody uid,
@Part("token") RequestBody token,
@Part("sex") RequestBody sex,
@Part("intro") RequestBody intro,
@Part("username") RequestBody username,
@Part("city") RequestBody city,
@Part("birthday") RequestBody birthday,
@Part MultipartBody.Part file);

  

    private static RequestBody stringRequestBody(String params){
return RequestBody.create(MediaType.parse("text/plain"), params);
}

  

retrofit2 上传图片的更多相关文章

  1. Retrofit2 上传图片等文件

    普通写法: //创建表单的普通字段public static RequestBody createFormBody(String content) { RequestBody body = Reque ...

  2. Retrofit2.0起步篇

    retrofit 英文名字是改装的意思,也就是说他是对网络请求的一种改装,他不负责进行网络请求,他是对请求方式的一种封装.真正进行网络请求的是okhttp. 以下所有内容在Android Studio ...

  3. Novate 网络库:Retrofit2.0和RxJava的又一次完美改进加强(Tamic博客 -CSDN)

    作者/Tamic http://blog.csdn.net/sk719887916/article/details/52195428 前言 用过RxJava和Retrofit的朋友,用久了就会发现Re ...

  4. 基于RxJava2+Retrofit2简单易用的网络请求实现

    代码地址如下:http://www.demodashi.com/demo/13473.html 简介 基于RxJava2+Retrofit2实现简单易用的网络请求,结合android平台特性的网络封装 ...

  5. OkHttp3 + retrofit2 封装

    0.下载文件 1.gradle 添加 compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:co ...

  6. 博客使用BOS上传图片

    1.博客平台的选定 从大学开始做个人主页算起,最开始是使用html,CSSS写简单的页面,后面大学毕业之后接触到了WordPress,就开始用WordPress搭建网站.现在还维护着一个农村网站.ht ...

  7. nodejs利用ajax实现网页无刷新上传图片

    nodejs利用ajax实现网页无刷新上传图片 标签(空格分隔): nodejs 通常情况下上传图片是要通过提交form表单来实现的,但是这又不可避免的产生了网页转. 利用ajax技术和FormDat ...

  8. -Android -线程池 批量上传图片 -附php接收代码

    (出处:http://www.cnblogs.com/linguanh/) 目录: 1,前序 2,类特点 3,用法 4,java代码 5,php代码 1,前序 还是源于重构,看着之前为赶时间写着的碎片 ...

  9. iOS 原生HTTP POST请求上传图片

    今天项目里做一个上传图片等个人信息的时候,使用了第三方AFNetworking - (AFHTTPRequestOperation *)POST:(NSString *)URLString param ...

随机推荐

  1. nodejs+express使用html和jade

    nodejs+express经常会看到使用jade视图引擎,但是有些人想要访问普通的html页面,这也是可以的: var express = require('express'); var port ...

  2. JS-for中的i

    var aBtn = document.getElementsByTagName('input');        for( var i=0; i<aBtn.length; i++ ){     ...

  3. hdu 5682 zxa and leaf

    zxa and leaf  Accepts: 25  Submissions: 249  Time Limit: 5000/2500 MS (Java/Others)  Memory Limit: 6 ...

  4. day4----json的简单实用

    json官方说明参见:http://json.org/ Python操作json的标准api库参考:http://docs.python.org/library/json.html 重要函数 编码:把 ...

  5. 导入DXF文件

    1.选择菜单“File-Import-DXF”. 2.设置DXF文件参数.DXF file:选择DXF结构文件,单位,要和DXF源文件的单位一致.在DXF file中选择文件后,下方的Layer co ...

  6. C++11 并发指南六(atomic 类型详解三 std::atomic (续))

    C++11 并发指南六( <atomic> 类型详解二 std::atomic ) 介绍了基本的原子类型 std::atomic 的用法,本节我会给大家介绍C++11 标准库中的 std: ...

  7. Color颜色对照表

    Color.AliceBlue 240,248,255 Color.LightSalmon 255,160,122 Color.AntiqueWhite 250,235,215 Color.Light ...

  8. 某些版本的IIS可能有SessionID混淆的Bug

    某公司为我服务的甲方公司开发一个挺重要的应用.已经上线了一年多了,不停的修修改改.也算正常使用.正所谓,秀恩爱,死得快.No 作就No Die.也少知道是那个Smarty Pants闲的蛋疼说新修改的 ...

  9. NBIbatis 框架体系说明

    框架体系说明 Application 表现层 表现层必须通过Business业务规则层操作数据库,不能直接调用DataAccess数据访问. Sqlmap.config配置: connectionSt ...

  10. [异常] JLink Error: Could not find supported CPU core on JTAG chain J-Link连接不到stm32内核问题

    >_<" 昨天晚上还好好的,今天早上调试的时候就不行了,下载程序的时候总是报J-Link连接不上,而且stm32似乎也死机了,led灯不闪烁,TFT屏也无显示. >_< ...