代码之家  ›  专栏  ›  技术社区  ›  Maxim Kachurovskiy

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

  •  8
  • Maxim Kachurovskiy  · 技术社区  · 14 年前

    我将创建与Communigate Pro服务器一起工作的移动应用程序。

    例如,我需要制作以下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中寻找 安卓2.1 ?

    1 回复  |  直到 11 年前
        1
  •  18
  •   Donal Rafferty    14 年前

    正如施纳普所说,你的问题似乎非常广泛,读起来和理解起来都很困惑。

    下面是一些发送HTTP日志和从服务器获取响应的常规代码,尽管这可能会有所帮助。


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