为了账号安全,请及时绑定邮箱和手机立即绑定

Retrofit okHttp 上传图片总是不行

Retrofit okHttp 上传图片总是不行

呼如林 2019-03-27 22:15:41
这是Retrofit接口代码Retrofit 调用代码Retrofit怎么弄都不行 不能成功,但是我用 ( useLibrary 'org.apache.http.legacy')的httpclient可以上传,以下是调用方法:这是php服务器端接收图片代码
查看完整描述

5 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

我是这样写的 @Part("image\"; filename=\"image.png\" ") RequestBody image


查看完整回答
反对 回复 2019-04-22
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

  Map<String, RequestBody> photoRequestBodyMap = new HashMap<>();



        photoRequestBodyMap.put("Content", RequestBody.create(MediaType.parse("text/plain"), et_body.getText().toString()));


        for (int i = 0; i < picList.size(); i++) {

        

                File file = new File(picList.get(i));

                RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);

                

                String key = "image\";filename=\"" + file.getName();

                photoRequestBodyMap.put(key, requestBody);

                

            } catch (Exception e) {

            }

        }



        netApiInterface

                .postMoment(photoRequestBodyMap)

我是这样的。


关于图片上传时要用的key,网上有多种说法。

我这边,实测 String key = "image";filename="" + file.getName();可行


查看完整回答
反对 回复 2019-04-22
?
慕的地10843

TA贡献1785条经验 获得超8个赞

方法注解只使用POST,参数注解也只使用BODY,以及单独构造MultipartBody进行上传。
retrofit2.0对上传文件支持并不那么简洁,应该去熟悉okhttp

查看完整回答
反对 回复 2019-04-22
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

如果你用的是Retrofit2.0 那 Part注解后面 后面应该是MultipartBody.Part 而不是RequestBody


查看完整回答
反对 回复 2019-04-22
  • 5 回答
  • 0 关注
  • 1058 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信