使用 HttpPost MultiPartEntityBuilder 上传照片

2024-01-09

我正在尝试将拍摄的照片上传到服务器。这就是我所做的:

public JSONObject makePostFileRequest(String url, String photoFile) {
    try {
        // photoFile = /path/tofile/pic.jpg
        DefaultHttpClient httpClient = GlobalData.httpClient;
        HttpPost httpPost = new HttpPost(url);

        File file = new File(photoFile);
        FileBody fileBody = new FileBody(file); // here is line 221

        MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();

        multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        multipartEntity.addPart("PhotoMessage", fileBody);

        httpPost.setEntity(multipartEntity.build());

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

我收到此错误:

11-29 13:12:14.924:E/AndroidRuntime(15781):原因: java.lang.NoClassDefFoundError:org.apache.http.entity.ContentType 11-29 13:12:14.924:E / AndroidRuntime(15781):在org.apache.http.entity.mime.content.FileBody。(FileBody.java:89) 11-29 13:12:14.924:E / AndroidRuntime(15781):在com.petcial.petopen.custom.JSONParser.makePostFileRequest(JSONParser.java:221)

我究竟做错了什么?


Update

InputStream inputStream;
inputStream = new FileInputStream(new File(photoFile));
byte[] data;
data = IOUtils.toByteArray(inputStream);

httpClient.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
                        System.getProperty("http.agent"));
InputStreamBody inputStreamBody = new InputStreamBody(new ByteArrayInputStream(data), "Pic.jpg");

MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();

multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("PhotoMessage", inputStreamBody);

httpPost.setEntity(multipartEntity.build());

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();

这是错误:

11-29 14:00:33.364:E/AndroidRuntime(19478):原因: java.lang.NoClassDefFoundError:org.apache.http.util.Args 11-29 14:00:33.364: E/AndroidRuntime(19478): 在 org.apache.http.entity.mime.content.AbstractContentBody。(AbstractContentBody.java:48) 11-29 14:00:33.364:E / AndroidRuntime(19478):在org.apache.http.entity.mime.content.InputStreamBody。(InputStreamBody.java:69) 11-29 14:00:33.364: E/AndroidRuntime(19478): 在 org.apache.http.entity.mime.content.InputStreamBody.(InputStreamBody.java:62) 11-29 14:00:33.364: E/AndroidRuntime(19478): 在 com.petcial.petopen.custom.JSONParser.makePostFileRequest(JSONParser.java:233)

这些库解决了我的问题:


enter image description here Check that jar in Order and Export tab and run.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HttpPost MultiPartEntityBuilder 上传照片 的相关文章

随机推荐

  • 如何在 Django 模板中访问外键表的数据?

    我想将外键表的数据访问到 django 模板中 我的代码如下 class TutorialCategory models Model tutorial category models CharField max length 200 cat
  • Visual Studio Community 2019 在为 MATLAB MEX 文件的性能分析器“准备数据”期间挂起

    我正在尝试使用 Visual Studio Community Edition 2019 分析 MEX mexw64 文件 该 MEX 文件是根据我们编写的 C 文件创建的 并使用 GCC 和 G 进行编译 并启用了调试符号 如果重要的话
  • 如何在 if 语句中回显 PHP 和 HTML

    我有一个 if 语句 只需在 result37 ncrteam 的值时显示一些代码 但是我如何回显该 HTML 和 PHP 代码 回声 不工作并回显 也不行 这是我的代码 Status br
  • Docker 容器之间的 HTTP 请求

    我正处于学习如何使用 Docker 的第一阶段 所以我正在尝试一些基本的东西 我创建了两个需要通过 HTTP 请求交换数据的 Node Express 服务 My docker compose yml file networks isola
  • Android - Firebase 快速入门电子邮件/密码身份验证演示不起作用

    因此 这里有几个类似的问题 但没有一个对我来说有可行的解决方案 我正在使用从 Github 下载的 Quickstart 演示 今天下载了 我没有更改演示代码中的任何内容 我已经解决了一些常见错误 根据我所读到的内容 我在 Firebase
  • Python:列表中的每个元素占用多少空间?

    我需要一个非常大的列表 并且正在尝试弄清楚我可以将其设置为多大 以便它仍然适合 1 2GB 的 RAM 我正在使用 64 位 x86 64 上的 CPython 实现 编辑 感谢 bua 的回答 我已经填写了一些更具体的答案 空间 内存 使
  • 将字符串传递给 sass mixin 中的变量

    我有一个非常简单的 mixin 如下所示 mixin global variable name font size variable name font size 我之前定义了变量 input font size 并将其按以下格式传递到 m
  • 如何使用java 10在maven中添加javafx依赖项

    我切换到ubuntu 18 04 其中默认 jvm 为 java 10 现在我使用 javafx 的应用程序无法再编译 cannot find symbol ERROR symbol class ObservableMap 我尝试向 mav
  • 当您输入新问题时,Stack Overflow 如何显示类似问题?

    这是 Stack Overflow 和在这个平台上运行的其他网站做得很好的事情之一 一旦您尝试创建新问题 就会显示一个小窗口 其中显示其他类似的问题 这是怎么做到的 可以使用什么技术来实现这一点 卢森 狮身人面像 StackOverflow
  • CSS 边框半径,但像素化

    我想在 CSS 中创建一个圆形边框 放大时看起来像素化 这是圆形边框近距离的样子 https i stack imgur com T9Q2g jpg https i stack imgur com T9Q2g jpg 这就是我试图让它看起来
  • 使用 Groovy HTTPBuilder POST XML 数据

    我正在尝试使用 HTTPBuilder 类将 XML 数据发布到 URL 目前我有 def http new HTTPBuilder http m4m email protected cdn cgi l email protection a
  • 在 Rails 3 / devise 中使用请求标头中的 auth_token 而不是 POST/PUT 参数

    我需要在 Rails 3 1 API 中与最新版本的设计结合使用基于令牌的身份验证 到目前为止没有问题 现在我不想将 auth token 附加到客户端的 POST PUT 参数 而是将此令牌作为请求标头发送 如 HTTP X MYAPP
  • 活跃商家 - 未初始化常量 ActiveSupport::XmlMini_REXML::StringIO

    我有 activemerchant 1 16 0 和 Rails 3 0 5 我正在尝试构建一个基本代码来使用活跃商家与 PayPal 网关进行通信 if credit card valid or gateway purchase to d
  • Joomla 加载的旧版本 bootstrap

    我正在开发一个新网站 为此我安装了最新版本的 Joomla 3 1 1 我使用 Twitter Bootstrap 从头开始 创建了一个模板 我下载了最新版本的Bootstrap 并在模板的index php中加载了相关的javascrip
  • Emacs 中函数的注释

    我正在寻找一种方法来在 Emacs 中的函数上方生成和插入标题注释块 在任何模式下 注释的默认内容自动基于函数的签名 即 param 占位符的正确数量 Doxymacs 是一个不错的候选者 但我更喜欢另一种无需必要库的方法 谁能推荐一些其他
  • 传递对象的最佳实践

    我有一个简单的问题 假设我有一个包含大约 10 个属性的数据对象 并且我想将数据从我的对象传递到函数 大多数时候 我只需要接收函数中的这些值之一 并且也可以只传递该值 假设是一个 int 那么 始终发送整个对象与仅发送其中包含的值之一相比
  • 识别 UIImagePickerController 委托中的不同选择器

    我有一个带有几个按钮的视图 我用它们来呈现 UIImagePickerControllers 相机和媒体选择器 当我创建 UIImagePickerControllers 时 我给它们提供了不同的名称并以模式方式呈现它们 如下面的代码所示
  • 使用 linq vb.net 从数据表中检索不同的值

    我正在尝试从数据表中的特定列中检索所有不同的值 数据表中的列名称是 Count 我有 2240 行 计数 列中有 6 个不同的值 问题是 当我执行以下代码时 它给出的是行数而不是 6 个不同的值 Dim counts From row In
  • Pandas 多索引数据框 - 从多索引中的一个索引中选择最大值

    我有一个具有年和月多重索引的数据框 如下所示 Value Year Month 1 3 1992 2 5 3 8 1993 1 2 我试图选择每年的最大值并将其放入 DF 中 如下所示 Max Year 1992 5 1993 2 关于多索
  • 使用 HttpPost MultiPartEntityBuilder 上传照片

    我正在尝试将拍摄的照片上传到服务器 这就是我所做的 public JSONObject makePostFileRequest String url String photoFile try photoFile path tofile pi