如何发送HTTP POST请求并接收响应?

我将创build与CommuniGate Pro服务器配合使用的移动应用程序。

例如,我需要进行以下Android客户端C -CGP Server 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 { ... }; 

Android 2.1中,它将如何看待Java?

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