1

私は次の問題に取り組んでいます:MultiPartエンティティを介して画像をアップロードしようとしたときに、HttpClient/MIMEのいくつかの更新がすべてをクラックしているようです。私は次のコードを試していますが、:で失敗しNoClassDefFoundErrorます

public static void executeMultipartPost(File image, ArrayList<Cookie> cookies, String myUrlToPost) {
    try {
        // my post instance
        HttpPost httppost = new HttpPost(myUrlToPost);
        // setting cookies for the connection session
        if (cookies != null && cookies.size() > 0) {
            String cookieString = "";
            for (int i=0; i<cookies.size(); ++i) {
                cookieString += cookies.get(i).getName()+"="+cookies.get(i).getValue()+";";
            }
            cookieString += "domain=" + BaseUrl + "; " + "path=/";
            httppost.addHeader("Cookie", cookieString);
        }
        // creating the http client
        HttpClient httpclient = new DefaultHttpClient();
        // creating the multientity part [ERROR OCCURS IN THIS BELLOW LINE]
        MultipartEntity multipartEntity = new MultipartEntity();
        multipartEntity.addPart("photoupload", new FileBody(image));
        httppost.setEntity(multipartEntity);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity resEntity = response.getEntity();
    } catch (Exception e) {}
}

このメソッドは完全にコンパイル可能で、httpclient-4.0.1.jarおよびhttpmime-4.2.jar libsを使用しますが、ここでも、コメント行でクラッシュします。

私は何かが足りないのですか?

4

3 に答える 3

4

さて、ここにマルチパート投稿に必要なライブラリがあります。すべてのクレジットは、Pro Android3および現在4のライターであるSatyaKomatineniDavidMacleanの功績であり、彼らの本から引用しています。

マルチパートPOST呼び出しを行うには、Apache Commons IO、Mime4j、およびHttpMimeの3つの追加のApacheオープンソースプロジェクトを取得する必要があります。これらのプロジェクトは、次のWebサイトからダウンロードできます。CommonsIO:http://commons.apache.org/io/ Mime4j: http : //james.apache.org/mime4j/ HttpMime: http://hc.apache。 org / downloads.cgi(HttpClient内)

于 2012-06-05T18:26:06.357 に答える
1

同じ問題があり、jarファイルをAndroidプロジェクトの「libs」ディレクトリに移動することで修正されました。

于 2012-06-05T16:56:48.463 に答える
0

プロジェクトのビルドパスでjarがチェックされていることを確認してください。(プロジェクト->プロパティ)

于 2012-06-05T16:36:49.667 に答える