当前位置: 首页 > 知识库问答 >
问题:

使用Retrofit在JSON中上传多部分图像数据?

段成益
2023-03-14

我想用这个JSON正文(包含图片)和改造做一个PUT请求。我在Android下使用它:

{
    "Request": {
        "data": {
            "Key": "keydata",
            "param": {
                "title": "Testingpostmultipartimageupload",
                "photo": **"IMAGE BYTE DATA"**
            }
        }
    }
}

有线索吗?

共有3个答案

陆绪
2023-03-14

翻新仅接受multipart和requestbody作为其multipart。

Call<SubmitLevel1Part2IconResp> loadLevel1halfIconswithImage(@Part("headerdata[relation][icon_type]") RequestBody icon_type, @Part("headerdata[relation][name]") RequestBody name, @Part MultipartBody.Part file);

然后在java中

 // MultipartBody.Part is used to send also the actual filename
 MultipartBody.Part body =  MultipartBody.Part.createFormData("headerdata[relation][relative_image]", fileUpload.getName(), requestFile);



call = service.loadLevel1halfIconswithImage(icon_type, name, body);
常乐
2023-03-14

您需要通过使用多部分表单数据将图像数据放入字节中。

try {
    HttpPost httppost = new HttpPost("some url");
    MultipartEntity multipartEntity = 
        new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);  
    multipartEntity.addPart("Image", new FileBody(image));
    httppost.setEntity(multipartEntity);
    mHttpClient.execute(httppost, new YOURHANDLER());
} catch (Exception e) {
    Log.e(ServerCommunication.class.getName(), e.getLocalizedMessage(), e);
}

使用参数发送帖子请求

HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

if (values != null) {
    for (Map.Entry<String, String> entry : values.entrySet()) {
        nameValuePairs.add(
            new BasicNameValuePair(entry.getKey(), entry.getValue()));
    }
    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
}
傅正豪
2023-03-14

好的,我找到了一个使用多部分的解决方案,如下所示:

@Multipart
@PUT("/users/{id}")
void modifyPic(
    @Header("auth_token") String token,
    @Path("id") int userid,
    @Part("request[data][param][title]") String title,
    @Part("request[data][param][Photo]") TypedFile avatar,
    Callback<User> cb
);
 类似资料:
  • 位卡在这个上,需要上传图像和json一起使用多部分形式...不知道如何发送内容类型标头或上传图像...认为我需要转换为blob...目前我只是发送我从文件输入字段中获得的数据。 任何建议都很好谢谢

  • 我有一个问题与上传多部分形式的图像 下面是我从这个答案中使用的代码 然后我使用NSURLSession来应用请求 服务器说我没有选择要上传的图像,我现在只想上传图像 我必须使用图像路径上传任何图像或它的数据就足够了吗? 我是否错过了任何事情,任何有助于理解这一点的帮助?

  • 大家好,我想通过Retrofit2发布图像和其他数据。我在用一张图像发送数据。 所有其他信息都在储存,但我的图像不存储。当我用邮递员测试时,它工作。 请指导我在代码中的不足之处 这是我获取数据的代码 我甚至把它放在一个视图上,这很有效...

  • http://letitripple.org/htmlform.html 这是此html表单创建的请求。(我从chrome开发者工具中获得) ------WebKitFormBoundaryPug6XAUALAUPBR86内容-配置:表单-数据;name=“wp-user-avatars”;filename=“desert.jpg”内容-类型:image/jpeg

  • 我有以下错误: 我为http请求设置了服务器,仍然得到错误:

  • 我要哭了,因为我尝试了很多解决方案和话题,但都不起作用。 null 您需要发送一个多部分请求(enctype=“multipart/form-data”)。 所以,有人能请帮助我,为什么我有HTTP 400与上面的错误消息?我可以在代码中更改什么以使此调用工作?谢谢你