10

我想要做的是将图片发送到网络服务器。当我在我的 Android 项目中调用一个方法时,我收到以下错误:找不到类 'org.apache.http.entity.mime.content.Filebody',从方法 com.example.tc.Send.send 引用。

即使我有以下导入,也会发生这种情况:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;

这就是方法所在的类的样子:

public class Send {
public Send(){
}

public static String send(String path) throws Exception {
    String filePath = path;
    String svar;

    HttpClient httpclient = new DefaultHttpClient();
    try {
        HttpPost httppost = new HttpPost("path to web server"); 
        FileBody pic = new FileBody(new File(filePath)); 
        MultipartEntity requestEntity = new MultipartEntity(); 
        requestEntity.addPart("file", pic);

        httppost.setEntity(requestEntity);
        System.out.println("executing request " + httppost.getRequestLine());
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity responseEntity = response.getEntity();
        System.out.println("----------------------------------------");
        System.out.println(response.getStatusLine());

        ByteArrayOutputStream outstream = new ByteArrayOutputStream();
        response.getEntity().writeTo(outstream);
        byte [] responseBody = outstream.toByteArray();
        svar = new String(responseBody);
        System.out.println(svar);

    } finally {
        try {
            httpclient.getConnectionManager().shutdown();
        } 
        catch (Exception ignore) {
        }
    }
    return svar;
}
}

任何人都可以看到问题是什么?

4

5 回答 5

6

添加这两个依赖

compile "org.apache.httpcomponents:httpcore:4.2.4"
compile "org.apache.httpcomponents:httpmime:4.3"
于 2015-04-21T09:53:00.470 回答
4

您的类路径中需要有 httpmime-4.0.jar。您可能(我猜您确实有)将这个 jar 放入您的项目中,但它在运行时是否在您的应用程序中?如果我理解正确,您可以从 android 应用程序中得到它。你需要在你的 android 的类路径中有这个 jar。

于 2013-11-01T10:13:46.670 回答
1
  • 添加依赖:

    编译'org.apache.httpcomponents:httpcore:4.4.4'
于 2019-01-01T06:07:12.477 回答
0

从此链接 http://hc.apache.org/downloads.cgi下载 Apache HttpComponents jar 文件并在您的 Android 项目目录中创建一个 /libs 目录并将 JAR 文件复制到该目录。通过单击 Android 项目的项目属性,然后选择 Java 构建路径设置,选择库选项卡并单击添加 JAR 按钮,然后选择 /libs 目录中的 jar,将其添加到您的项目中。

于 2014-12-25T12:56:20.650 回答
0

您还可以从 Eclipse ADT 包中获取这些文件,而无需单独下载它们 - 请参阅此处的答案:

https://stackoverflow.com/a/27906193/334402

请注意,如果您只是将外部 JAR 文件添加到构建路径但忘记导入,则会收到原始海报标记的错误,即“找不到类 'org.apache.http.entity.mime.content.Filebody'”存档也到您的项目中。

于 2015-01-12T17:51:34.040 回答