2013-05-21 108 views
9

我想要做的是將圖片發送到Web服務器。當我在我的Android項目中調用方法時,出現以下錯誤:找不到類「org.apache.http.entity.mime.content.Filebody」,從方法com.example.tc.Send.send引用。找不到類'org.apache.http.entity.mime.content.Filebody',從方法引用

這種情況eventhough我有以下的進口:

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; 
} 
} 

任何人都可以看到的問題是什麼?

+0

你一定要包括它在Java構建路徑? –

+0

您是否找到答案? –

+0

你使用proguard嗎? –

回答

4

你需要在你的類路徑中有httpmime-4.0.jar。你可能(我想你是)有這個jar到你的項目中,但它是否在運行時你的應用程序? 如果我理解正確,你可以從android應用程序獲得這個。你需要在你的android的類路徑中有這個jar。

+0

賞金已批准... – 2014-12-25 12:58:07

+0

您應該將此標記爲正確答案 – whyoz

0

從此鏈接下載Apache HttpComponents jar文件http://hc.apache.org/downloads.cgi並在您的Android項目目錄中創建一個/ libs目錄並將該JAR文件複製到該目錄。通過單擊Android項目的項目屬性將其添加到項目中,然後選擇Java Build Path設置,選擇Libraries選項卡並單擊Add JAR按鈕並選擇/ libs目錄中的jar。

0

還可以獲得從Eclipse ADT捆綁這些文件,而無需單獨下載它們 - 在這裏看到了答案:

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

請注意,您將得到原始的海報標記錯誤,即'找不到類'org.apache.http.entity.mime.content.Filebody',如果您只是將外部JAR文件添加到您的構建路徑中,但忘記將該歸檔文件導入到您的項目中。

3

添加這兩個依賴

compile "org.apache.httpcomponents:httpcore:4.2.4" 
compile "org.apache.httpcomponents:httpmime:4.3" 
相關問題