0

次のコードを使用して、Android マルチパート POST を実行しようとしています。

   DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(urlString);

        File file = new File(pic);

        Log.d(TAG, "UPLOAD: setting up multipart entity");

        MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        Log.d(TAG, "UPLOAD: file length = " + file.length());
        Log.d(TAG, "UPLOAD: file exist = " + file.exists());

        try {
            mpEntity.addPart("datafile", new FileBody(file, "application/octet"));
            mpEntity.addPart("id", new StringBody("1"));
        } catch (UnsupportedEncodingException e1) {
            Log.d(TAG, "UPLOAD: UnsupportedEncodingException");
            e1.printStackTrace();
        }

        httppost.setEntity(mpEntity);
        Log.d(TAG, "UPLOAD: executing request: " + httppost.getRequestLine());
        Log.d(TAG, "UPLOAD: request: " + httppost.getEntity().getContentType().toString());


        HttpResponse response;
        try {
            Log.d(TAG, "UPLOAD: about to execute");
            response = httpclient.execute(httppost);
            Log.d(TAG, "UPLOAD: executed");
            HttpEntity resEntity = response.getEntity();
            Log.d(TAG, "UPLOAD: respose code: " + response.getStatusLine().toString());
            if (resEntity != null) {
                Log.d(TAG, "UPLOAD: " + EntityUtils.toString(resEntity));
            }
            if (resEntity != null) {
                resEntity.consumeContent();
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

これは、「java.lang.noclassdeffounderror org.apache.http.entity.mime.multipartentity」でクラッシュします

    MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

これは、私が使用している外部ジャーに関係していると思います。プロジェクトに Libs フォルダーがあり、プロジェクトのビルド パスで次のファイルを参照しています。

httpclient-4.2.jar、httpcore-4.2.jar、および httpmime-4.2.jar

これらは正しいバージョンですか? それとも、さらに JARS が必要ですか?

4

1 に答える 1

0

Android プロジェクトで、プロジェクトのルート (src/、res/ などの隣) に libs という名前のディレクトリを作成します。

使用するライブラリの JAR ファイルを見つけて、libs/ ディレクトリにコピーします。

ライブラリを使用するためのプロジェクトの設定:

詳細はこちらを参照してください:

于 2012-09-27T11:02:05.587 に答える