10

私がやろうとしているのは、画像を Web サーバーに送信することです。Android プロジェクトでメソッドを呼び出すと、次のエラーが表示されます。

これは、次のインポートがあるにもかかわらず発生します。

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

これら2つの依存関係を追加

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 に答える
0

これらのファイルは、個別にダウンロードせずに Eclipse ADT バンドルから取得することもできます。こちらの回答を参照してください。

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

外部 JAR ファイルをビルド パスに追加しただけでインポートを忘れた場合、元の投稿者がフラグを立てたエラー、つまり「クラス 'org.apache.http.entity.mime.content.Filebody' が見つかりませんでした」が表示されることに注意してください。アーカイブもプロジェクトに。

于 2015-01-12T17:51:34.040 に答える
0

このリンクhttp://hc.apache.org/downloads.cgiから Apache HttpComponents jar ファイルをダウンロード し、Android プロジェクト ディレクトリ内に /libs ディレクトリを作成して、JAR ファイルをそのディレクトリにコピーします。Android プロジェクトの [プロジェクト プロパティ] をクリックしてプロジェクトに追加し、[Java ビルド パス設定] を選択し、[ライブラリ] タブを選択して [JAR の追加] ボタンをクリックし、/libs ディレクトリ内の jar を選択します。

于 2014-12-25T12:56:20.650 に答える