File file = new File(path, "theimage");
File file2 = new File(path2, "theimage");
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
RequestBody requestBody2 = RequestBody.create(MediaType.parse("image/png"), file2);
Map<String, RequestBody> params = new HashMap<>();
params.put("image2", requestBody2 );
Call<ResponseBody> call = service.upload(requestBody, params);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Response<ResponseBody> response, Retrofit retrofit) {
Log.v("Upload", "success");
}
public interface FileUploadService {
@Multipart
@POST("/upload")
Call<ResponseBody> upload(
//@Part("image_logo\"; filename=\"image.png\" ") RequestBody file,
@Part("file") RequestBody file,
@PartMap Map<String, RequestBody> params
// @Part("description") String description
);
content_type:multipart/form-data;边界=50FbFeB3-3ABC-4F15-B130-CdCB7E3A0E4F
内容帖子:数组([文件]=>PNG IHDR L AlotofBinaryGibberish......snip[文件2]=>PNG IHDR L更多二进制Gibberish...
有人能给我指个正确的方向吗?
HashMap<String, RequestBody> partMap = new HashMap<String, RequestBody>();
partMap.put("file\"; filename=\"" + file.getName(), requestBody);
partMap.put("file\"; filename=\"" + file2.getName(), requestBody);
Call<ResponseBody> call = service.upload(partMap);
@Multipart
@POST("/upload")
Call<ResponseBody> upload(
@PartMap() Map<String, RequestBody> partMap,
我尝试了这个改版(2.0beta2)多部分文件上传不起作用的解决方案,但得到了一个错误,即@body不能与Multipart一起使用:java.lang.IllegalArgumentException:@body参数不能与表单或多部分编码一起使用。(参数#1)
for (String key : keys) {
Bitmap bm = selectedImages.get(key);
File f = new File(saveToInternalStorage(bm, key), key);
if (f.exists()) {
buildernew.addFormDataPart(key, key + ".png", RequestBody.create(MEDIA_TYPE, f));
}
}
RequestBody requestBody = buildernew.build();
-
Call<ResponseBody> upload(
@Body RequestBody requestBody
final MediaType MEDIA_TYPE=MediaType.parse("image/png");
HashMap<String,RequestBody> map=new HashMap<>(selectedImages.size());
RequestBody file=null;
File f=null;
Set<String> keys = selectedImages.keySet();
for (String key : keys) {
try {
Bitmap bitmap = selectedImages.get(key);
f = new File(saveToInternalStorage(bitmap, key), key);
FileOutputStream fos = new FileOutputStream(f);
if(bitmap!=null){
bitmap.compress(Bitmap.CompressFormat.PNG, 0 , fos);
fos.flush();
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
return;
}
file=RequestBody.create(MEDIA_TYPE, f);
map.put(""+key+"\"; filename=\""+key+".jpg",file);
Log.i("##MYLOG###", "### MAP PUT:" + key + " filename:"+key+".jpg file:" + file.toString() +" type:"+ file.contentType() );
file=null;
f = null;
}
--
Call<ResponseBody> upload(
@PartMap() Map<String,RequestBody> mapFileAndName //for sending multiple images
--
注意:在使用HttpClient.Interceptors()调试时,我只看到了一个上传,但是当检查endpoint本身以查看它实际得到了什么时,它确实得到了多个上传!
我确信,所有GET参数都正确写入。我想,问题在于我如何发送文件上传。 接口: 有人能帮我吗?
操作方法:上方文件按钮-上传按钮
我有以下错误: 我为http请求设置了服务器,仍然得到错误:
当以字符串形式发送文件时,如何显示上载进度?我了解了关于这个问题的所有可用帖子,但都使用了带有文件的多部分帖子。但我没有这个文件。我有一根非常非常大的绳子。请帮帮我,谢谢。 我添加了拦截器: 此自定义请求主体: 改装服务: 和上传方法: 但进展只有一次100%发射
这是我的密码。它正常工作。但我想上传其他图像类型,如png,jpeg等。因此,我想更改filename=\“file1.jpeg” 我也想同时发送不同数量的文件。 请帮我解决这个问题。谢谢你。
Android版本和代码版本号Android Studio怎么改?我想在Google Play上更改apk文件(app)并且我需要更改Android版本和代码版本号。我在Android Studio中的AndroidManifest.xml文件中尝试了这种方法: 但它不起作用。当我试图在Google Play上发布它时,它显示我必须更改Android版本的名称和代码。