¿Cómo enviar la solicitud HTTP POST y recibir respuesta?
Voy a crear aplicaciones móviles que funcionan con el servidor CommuniGate Pro.
Por ejemplo, necesito hacer la siguiente conversación con el Cliente Android C
-CGP Server S
y obtener el valor del nodo 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>
Por ejemplo, en ActionScript 3.0 se ve así:
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 { ... };
¿Cómo se verá en Java para Android 2.1 ?
Como Schnapple dice que su pregunta parece muy amplia y es confuso leer y entender.
Aquí hay un código general para enviar un HTTP POST y obtener una respuesta de un servidor que puede ser útil.
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; }