我正在进行相机 Intent Activity ,我正在尝试将用户选择的图像发布到服务器。但每次它都给我 Java SSL Socket Exception 。 下面是我尝试实现的将图像上传到服务器的方法。
private void postImage(String url) {
Context context = this.getApplicationContext();
File file = new File(getFilePath());
MimeTypeMap map = MimeTypeMap.getSingleton();
String ext = FilenameUtils.getExtension(file.getName());
String mime_type = map.getMimeTypeFromExtension(ext);
MultipartEntity form = new MultipartEntity();
form.addPart("files[]", new FileBody(file, mime_type, "UTF-8"));
AsyncHttpClient client = new AsyncHttpClient();
client.post(context, url, form, mime_type, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject jsonObject1) {
// called when response HTTP status is "200 OK"
if (statusCode == 200) {
try {
String url = jsonObject1.getString("imageUrl");
String blobkey = jsonObject1.getString("blobKey");
Log.d(TAG, "IMAGE URL : " + url + " \n BlobKey : " + blobkey + " ");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(int statusCode, Header[] headers, Throwable e, JSONObject jsonObject1) {
Log.d(TAG, "Status Code : " + statusCode);
}
@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});
}
最佳答案
AsyncHttpClient
支持上传文件。但是你应该这样使用它:
RequestParams params= new RequestParams();
//params.put("file", new File(filePath));
params.put("file", new File(filePath), contentType);
AsyncHttpClient client = new AsyncHttpClient();
//client.post(url, params, listener);
client.put(url, params, listener);
关于java - 安卓 : To upload an image using AsyncHttp POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30320172/