2010-06-11 88 views
3

我想上傳一個txt文件到一個網站,我承認我沒有詳細研究它,但我已經看了幾個例子,並希望更多的經驗意見,我是否要去正確的方向。Android - 如何將txt文件上傳到網站?

這是我到目前爲止有:


DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpContext localContext = new BasicHttpContext(); 
private String ret; 

HttpResponse response = null; 
HttpPost httpPost = null; 


public String postPage(String url, String data, boolean returnAddr) { 

    ret = null; 

    httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109); 

    httpPost = new HttpPost(url); 
    response = null; 

    StringEntity tmp = null;   

    try { 
     tmp = new StringEntity(data,"UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     System.out.println("HTTPHelp : UnsupportedEncodingException : "+e); 
    } 

    httpPost.setEntity(tmp); 

    try { 
     response = httpClient.execute(httpPost,localContext); 
    } catch (ClientProtocolException e) { 
     System.out.println("HTTPHelp : ClientProtocolException : "+e); 
    } catch (IOException e) { 
     System.out.println("HTTPHelp : IOException : "+e); 
    } 
      ret = response.getStatusLine().toString(); 

      return ret; 
} 

我叫它如下:


postPage("http://www.testwebsite.com", "data/data/com.testxmlpost.xml/files/logging.txt", true)); 

我希望能夠上傳d從設備到網站的文件。

但嘗試這種方式時,我得到以下回應。


HTTP/1.1 405 Method Not Allowed 

我是否想要以正確的方式或者我應該做另一種方式?

回答

3

該代碼看起來合理,錯誤來自服務器,並指出該頁面不允許POST。

您正在發送字符串「data/data/com.testxmlpost.xml/files/logging.txt」。如果您想發佈文件,請使用FileEntity

+0

謝謝我在想,我可以問,雖然是試圖發佈位於data/data/com.testxmlpost.xml/files/logging.txt的文件的代碼,還是試圖發佈字符串「data/data /com.testxmlpost.xml/files/logging.txt「? – 2010-06-11 16:30:09

+0

字符串。您可以改用FileEntity。 – 2010-06-11 16:39:36

+0

感謝馬修,我已將它更改爲文件實體,並且我正在使用已設置爲允許上傳的服務器,但我得到的響應相同,除了使用POST之外,還有其他方法可以實現嗎? – 2010-06-15 16:33:34