2010-06-11 102 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