2010-06-14 14 views
8

Mam zamiar stworzyć aplikację mobilną współpracującą z serwerem CommuniGate Pro.Jak wysłać żądanie HTTP POST i otrzymać odpowiedź?

Na przykład, muszę złożyć następujące Android Client C - CGP Server S rozmowę i uzyskać wartość XIMSS.nonce węzła:

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> 

przykład w języku ActionScript 3.0 to wygląda w ten sposób:

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 { ... }; 

Jak będzie wyglądać w języku Java dla Android 2.1?

+0

Wierzę, że będziemy potrzebować do opracowania bardziej w celu uzyskania jakiegokolwiek znaczącego wsparcia. –

Odpowiedz

18

Jak twierdzi Schnapple, twoje pytanie wydaje się bardzo szerokie i jest mylące w czytaniu i rozumieniu.

Oto ogólny kod do wysłania żądania POST HTTP i otrzymania odpowiedzi z serwera, ale może być to pomocne.


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

Kiedy użyłem tej metody, odpowiedź, którą otrzymałem z mojego serwera, to "Nie podano obrazu". Jak rozwiązać ten problem? – includeMe

Powiązane problemy