直接上代码

接口请求代码

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. Git 常用几个操作

    获取 git clone git@github.com:XXX/learning.git 更新 git pull  添加 git add XXX 上传本地 git commit -m "ap ...

  2. Protues记录文档_1

    1.实现器件的连线端有红蓝小方块来表示改端电平变化. 操作:选菜单:SYSTEM\SET ANIMATION OPTION ,相应的勾选对应的选项2 附:可以添加逻辑探测器,在库中直接搜索“LOGIC ...

  3. struts 标签<s:ierator>的简单使用说明

    struts 标签<s:ierator>的简单使用说明,只显示<s:ierator> 的前6条数据 <s:iterator value="lstVisitor& ...

  4. SQL语句汇总(二)——数据修改、数据查询

    首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>)  ...

  5. ASP.NET WEB API 中的路由调试与执行过程跟踪

    路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Inst ...

  6. 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据

    开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...

  7. jenkins插件 build timeout和build timestamp

    build timeout plugin, 允许对job设置timeout时间,当超时时,job将abort. build timestamp pluin,使得job log的每次输出前面都增加当时的 ...

  8. 点击div外面该div消失

    <head> <meta charset="UTF-8"> <title></title> <script type=&quo ...

  9. centos6.4 64位下安装nfs文件共享系统

    不知道谁装的服务器,默认自带,以下内容摘自互联网,配置部分按教程执行成功 一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: ...

  10. ajax温习

    工作中一直有写JS,也一直有用jquery,在感受jquery便利之余,也对它产生了依赖,已至于许多功能只知使用而不知原生写法,就像ajax. 今天不小心翻看了以前学习的视频,温故了一下原生ajax写 ...