直接上代码

接口请求代码

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. JS-定时器管理实例函数封装

    /** * Created by 12461 on 2016/11/6. */window.onload = function () { var oBtn1 = document.getElement ...

  2. SpringMVC中使用DWR

    SpringMVC中使用DWR重点在其配置当中. 1.  web.xml文件的配置 在DispatcherServlet中增加dwr的拦截来取代DwrServlet. 更改配置如下: <serv ...

  3. 推荐一个C语言学习教程

    Linux C编程一站式学习 http://learn.akae.cn/media/index.html

  4. 日期运算 jsf日期组建

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date; try { d ...

  5. 从0开始学Swift笔记整理(五)

    这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...

  6. C#函数式编程之递归调用

    关于递归相信大家已经熟悉的不能再熟悉了,所以笔者在这里就不多费口舌,不懂的读者们可以在博客园中找到很多与之相关的博客.下面我们直接切入正题,开始介绍尾递归. 尾递归 普通递归和尾递归如果仅仅只是从代码 ...

  7. Dynamic CRM 2013学习笔记(三十一)自定义用excel批量导入实体数据

    有一个实体的子表数据量太大,于是客户想用execel来导入实体数据.首先想到的是用系统自带的Import Data,客户嫌太麻烦,比如lookup字段要做map等. 下面是具体的实现步骤: 一.定义e ...

  8. 对.NET跨平台的随想

    是在魅力 .NET:从 Mono..NET Core 说起这篇博文的评论中写的,在此记录一下: .NET Core CLR是技术含量最高,但却是最容易实现跨平台的.因为微软的CLR是C或C++写的,没 ...

  9. Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击

    Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击 文/玄魂 目录 Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击................... ...

  10. 通过Anuglar Material串串学客户端开发 - NodeJS模块机制之Module.Exports

    module.exports 前文讲到在Angular Material的第二个编译文件docs/gulpfile.js中却看到了一个奇怪的东西module.exports那么module.expor ...