Retrofit2.0:上传图片到PHP
来源:互联网 发布:齐鲁软件大赛奖金 编辑:程序博客网 时间:2024/05/22 12:41
上传图片到PHP
关于Retrofit2.0+Rxjava,道长先只说一下上传图片到PHP,至于其他的可以先看一下CaBiao的博客,这里面关于Retrofit2.0+Rxjava的使用讲的比较详细。
添加接口:
/** * 上传图片 * @return */ @Multipart @POST(UrlContanier.ImgUpFile) Observable<HttpResult<UploadPicResponse>> uploadPicData(@PartMap Map<String, RequestBody> reqMessageBody);
实现上传方法:
道长这里把每一个请求参数实例化为RequestBody,然后把实例化后的实体放到Map
public void uploadPicData(String picPath){ String fileKey = "files"; Map<String, RequestBody> clubUploadPicRequest = getBasePhpRequest(); RequestBody headpic = RequestBody.create(MediaType.parse("multipart/form-data"), new File(picPath)); fileKey += "\"; filename=\"" + new File(picPath).getName(); clubUploadPicRequest.put(fileKey, headpic); RequestBody type = RequestBody.create(MediaType.parse("form-data"), "3"); clubUploadPicRequest.put("type" , type); RequestBody liveid = RequestBody.create(MediaType.parse("form-data"), activeid); clubUploadPicRequest.put("liveid" , liveid); appAction.uploadPicData(new CallBack<UploadPicResponse>(ClubActivityDetailActivity.this) { @Override public void onCompleted() { SimpleHUD.dismiss(); } @Override public void onError(Throwable e) { super.onError(e); SimpleHUD.dismiss(); } @Override public void onNext(UploadPicResponse uploadPicResponse) { String json = JsonUtil.GsonString(uploadPicResponse); LogHelper.v("lee", "uploadPicResponse:" + json); } }, clubUploadPicRequest); } public Map<String, RequestBody> getBasePhpRequest(){ Map<String, RequestBody> request = new HashMap<>(); RequestBody userid = RequestBody.create(MediaType.parse("form-data"), PreferenceHelper.get(ClubActivityDetailActivity.this, PreferenceHelper.PREFERENCE_LOGIN, "userid", 0) + ""); request.put("userid", userid); RequestBody accessToken = RequestBody.create(MediaType.parse("form-data"),Config.ACCESSTOKEN); request.put("accessToken",accessToken); RequestBody clientVersion = RequestBody.create(MediaType.parse("form-data"),Config.CLIENTVERSION); request.put("clientVersion",clientVersion); RequestBody clientName = RequestBody.create(MediaType.parse("form-data"),Config.CLIENTNAME); request.put("clientName",clientName); RequestBody version = RequestBody.create(MediaType.parse("form-data"),Config.HTTP_VERSION); request.put("version",version); return request; }
这里要注意两点:
1.封装图片的实体的代码为:
RequestBody headpic = RequestBody.create(MediaType.parse("multipart/form-data"), new File(picPath)); fileKey += "\"; filename=\"" + new File(picPath).getName(); clubUploadPicRequest.put(fileKey, headpic);
其中fileKey的拼接是不可改动的,如果改动的话会导致上传不成功。
2.封装其他请求参数的实体的代码为:
RequestBody userid = RequestBody.create(MediaType.parse("form-data"), PreferenceHelper.get(ClubActivityDetailActivity.this, PreferenceHelper.PREFERENCE_LOGIN, "userid", 0) + ""); request.put("userid", userid);
如果请求参数不是固定值,最好把参数设置为全局变量,否则会实例化RequestBody不成功。希望这篇博客能为你提供一些帮助。
1 0
- Retrofit2.0:上传图片到PHP
- Retrofit2.0 上传图片
- retrofit2.0,上传图片
- retrofit2.0图片上传filename问题
- Retrofit2.0上传图片文件件整理
- retrofit2上传图片
- retrofit2 上传多张图片
- Retrofit2.0进行图片上传(后端Spring MVC)
- retrofit2+okhttp3图片上传及进度监听
- Android Rxjava+Retrofit2 多图片+文字上传
- php上传图片到mysql并显示
- ios ASIFormDataRequest上传图片到php服务器
- php 上传图片保存到数据库例子
- php上传图片到本地并显示
- android 上传图片到php服务器
- php 上传图片保存到数据库例子
- android使用PHP上传图片到服务器
- android上传图片到PHP后台全过程
- 原生js倒计时,距离51放假还有多长时间
- RXTX javafx串口编程 关键代码
- Centos7安装Elasticsearch及集群
- 程序员在在哪个网站上找工作?
- Django 基础教程
- Retrofit2.0:上传图片到PHP
- Hibenate HQL运算符和QBC运算符
- Android开发之利用ZXing库实现二维码的生成
- 【算法】程序猿不写代码是不对的44
- AOJ ALDS1_7_A 树
- Qt5_随机产生MAC地址并在QLabel中显示
- 微信小程序版QQ音乐
- javascript 过滤页面彻底过滤输入时的特殊字符
- Android中的Shape使用总结