直接上代码

接口请求代码

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. 数独求解 DFS && DLX

    题目:Sudoku 题意:求解数独.从样例和结果来看应该是简单难度的数独 思路:DFS 设置3个数组,row[i][j] 判断第i行是否放了j数字,col[i][j] 判断第i列是否放了j数字.squ ...

  2. 获得select下拉框的值

    html -------------------------------------------------------------------------------------- <sele ...

  3. tomee 第一个 远程调用 Message-driven bean(MDB)

    MDB 整体结构 HelloMDB.java package cn.zno; import javax.jms.Connection; import javax.jms.ConnectionFacto ...

  4. iOS 开发者必知的 75 个工具(译文)

    原文地址:http://benscheirman.com/2013/08/the-ios-developers-toolbelt (需FQ)   如果你去到一位熟练的木匠的工作室,你总是能发现他/她有 ...

  5. 新公司入职第一天遇到的 关于 CSS 单行溢出文本显示省略号...的问题

    上班第一天 前端岗位,因为公司这个项目是标准开发 所以没法用框架在打架页面,好吧 我手写 各种div 各种css样式 好不忧伤,好吧 不废话了 进入正题. 想在导航栏中的 客户信息 功能点 实现溢出用 ...

  6. 写在Python前

    Python是用C编写的一种解释型语言,和shell一样,变量可以直接使用,而且就像C中的宏替换,但是Python同样支持进行底层的调用,可以很容易的和各种语言进行融合,俗称"胶水语言&qu ...

  7. 个性二维码开源专题<替换定位点>

    基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // F ...

  8. IIS问题解决:URL中制表符引起的Bad Request - Invalid URL

    昨天处理好了Google网站管理员中的500错误,今天处理了一些400处理,比如下面的以制表符(tab)结尾的URL: http://www.cnblogs.com/me-sa/archive/200 ...

  9. 微软 PowerShell Script Explorer 满血复活,正式发布

    一年前的今天,微软在其Windows PowerShell官方博客声明中止 ‘Script Explorer’ 应用程序的开发. 一年后的今天,微软为其Script Explorer注入了新的生命.一 ...

  10. eclipse 远程调试

    http://blog.sina.com.cn/s/blog_86a6730b0101iean.html 注:远程服务器端可用以下方式替代: iptables -I from_external 3 - ...