我想把我的文件从android设备发送到webapi,参数是名称、区块、文件数据。我有这样的代码:它不会在我身上返回任何错误,我不知道我做错了什么。请帮帮我,我花了很多时间,但它仍然不起作用。
FileBody localFileBody = new FileBody(new File("/storage/sdcard0/Pictures/Images/angel_productshot.jpg"),
"image/jpg");
MultipartEntity localMultipartEntity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 15000);
HttpConnectionParams.setSoTimeout(httpParameters, 15000);
HttpPost httpPost = new HttpPost(
"http://phdsafar4.myserver.com.ph:1217/api/fileupload");
HttpClient httpclient = new DefaultHttpClient(httpParameters);
httpPost.addHeader("Authorization","Basic " + Base64.encodeToString(
(username + ":" + password).getBytes(), Base64.NO_WRAP));
httpPost.setHeader("Content-Type", "multipart/form-data");
httpPost.setHeader("Accept", "application/image");
localMultipartEntity.addPart("name", new StringBody(filename));
localMultipartEntity.addPart("chunk", new StringBody("1"));
localMultipartEntity.addPart("file data", localFileBody);
httpPost.setEntity(localMultipartEntity);
HttpResponse localHttpResponse = httpclient.execute(httpPost);
Log.i("response upload", localHttpResponse.toString());
Log.i("Multipart Entity", localMultipartEntity.toString());
this work for me try it...
to use MultipartEntity must be add this two jar file in your project lib
1. httpmime-4.0.1.jar
2. apache-mime4j-0-.6.jar
MultipartEntity multipartEntity = new MultipartEntity();
File image1 = new File(imagePath);
multipartEntity.addPart("Image1",image1);
File image2 = new File(imagePath2);
multipartEntity.addPart("Image2",image2);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(Url);
post.setEntity(multipartEntity);
HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();
response_str = EntityUtils.toString(resEntity);
通过以下代码
public static String uploadImage(Bitmap bitmap, String imageName, String imageUrl) {
// String image_description = edtImageDescription.getText().toString();
StringBuilder s = null;// = new StringBuilder();
String sResponse;
try {
// ---------------------------------------------------------------------------------
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 75, bos);
byte[] data = bos.toByteArray();
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(imageUrl);
ByteArrayBody imageByte = new ByteArrayBody(data, imageName);
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
// sending a String param;
entity.addPart("image_description","Sample_Image")
entity.addPart("image_name", imageByte);
postRequest.setEntity(entity);
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
s = s.append(sResponse);
}
Logger.logger("Utilities", "Response: " + s);
} catch (Exception e) {
Logger.logger("Utilities", "Some error came up");
}
if (s != null) {
return s.toString();
} else {
return null;
}
}