2010-06-14 147 views
8

我打算创建适用于CommuniGate Pro服务器的移动应用程序。如何发送HTTP POST请求并接收响应?

例如,我需要做下面的Android客户端C - CGP服务器S交谈,并得到XIMSS.nonce节点值:

C:GET /ximsslogin/ HTTP/1.1 
    Host: myserver.com 
    Content-Type: text/xml 
    Content-Length: 42 

    <XIMSS><listFeatures id="list" /><XIMSS> 

S:HTTP/1.1 200 OK 
    Content-Length: 231 
    Connection: keep-alive 
    Content-Type: text/xml;charset=utf-8 
    Server: CommuniGatePro/5.3 

    <XIMSS><nonce>2C3E575E5498CE63574D40F18D00C873</nonce><language>german</language><response id="s"/></XIMSS> 

例如,在ActionScript 3.0,它看起来是这样的:

var loader:Loader = new Loader(); 
loader.addEventListener(Event.COMPLETE, completeHandler); 
var urlRequest:URLRequest = new URLRequest(...); 
urlRequest.method = ...; 
urlRequest.data = ...; 
loader.load(urlRequest); 

private function completeHandler(...):void { ... }; 

它如何在Java中看Android 2.1

+0

我相信你会需要更详细地说明,以获得任何有意义的援助。 – 2010-06-14 15:19:31

回答

18

正如Schnapple所说,你的问题看起来很宽泛,并且让人难以理解。

下面是一些通用代码,用于发送HTTP POST并从服务器获取响应,尽管这可能会有所帮助。


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

    ret = null; 

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

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

    FileEntity tmp = null;  

    tmp = new FileEntity(data,"UTF-8"); 

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

当我使用这种方法时,我从我的服务器得到的响应是“图像未提供”。如何解决这个问题? – includeMe 2011-03-31 09:44:03

相关问题