java - 安卓 : To upload an image using AsyncHttp POST

标签 java android image-uploading asyncfileupload loopj

我正在进行相机 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/

相关文章:

http-post - 如何在android中将图像发布到服务器

php - 一个输入的多图像上传 PHP 表单

java - 简化正则表达式

java - 分组对象java 8

java - 对于多模块 Maven 项目,是否可以使我的根(pom 打包)项目在 Eclipse 中可用?

android - onResume() 仅当应用程序通过启动器图标启动时才起作用,而不是在安装时按打开按钮

java - 如何在使用 Glide 加载之前解密图像

android - 如何从Android模拟器到Docker Machine的容器?

Android - 将编码图像 (1 - 2 MB) 上传到 base64 到服务器 HTTP POST - JSON

Java EE 发送电子邮件 - 什么库