Как отправить HTTP-запрос POST и получить ответ? - PullRequest
8 голосов
/ 14 июня 2010

Я собираюсь создать мобильное приложение, которое работает с сервером 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 { ... };

Как это будет выглядеть в Java для Android 2.1 ?

1 Ответ

18 голосов
/ 14 июня 2010

Как говорит Шнапл, ваш вопрос кажется очень широким и запутанным для чтения и понимания.

Вот некоторый общий код для отправки 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...