java - Retrofit okHttp 上传图片总是不行
PHP中文网
PHP中文网 2017-04-18 09:30:28
[Java讨论组]
PHP中文网
PHP中文网

认证0级讲师

全部回复(6)
PHPz

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

PHP中文网
  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();可行

PHP中文网

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

PHP中文网

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

阿神

http://m.blog.csdn.net/article/details?id=51511493 这是使用okhttp的后台是php接收

大家讲道理

我也是用httpclient可以成功,但是使用retrofit还要传递token,始终没有成功

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号