zoukankan      html  css  js  c++  java
  • HttpPost works in Java project, not in Android

    publicstaticMyBean gatherData(String username,String password){
       
    MyBean myBean =newMyBean();
       
    try{
           
    HttpResponse response = doHttpGet(URL_PAGE_LOGIN,null,null);
           
    System.out.println("Got login page");
           
    String content =EntityUtils.toString(response.getEntity());
           
    String token =ContentParser.getToken(content);
           
    String cookie = getCookie(response);
           
    System.out.println("Performing login");
           
    System.out.println("token = "+token +" || cookie = "+cookie);
            response
    = doLoginPost(username,password,cookie, token);
           
    int respCode = response.getStatusLine().getStatusCode();
           
    if(respCode !=302){
               
    System.out.println("ERROR: not a 302 redirect!: code is \""+ respCode+"\"");
               
    if(respCode ==200){
                   
    System.out.println(getHeaders(response));
                   
    System.out.println(EntityUtils.toString(response.getEntity()).substring(0,500));
               
    }
           
    }else{
               
    System.out.println("Logged in OK, loading account home");
               
    // redirect handler and rest of parse removed
           
    }
       
    }catch(Exception e){
           
    System.out.println("ERROR in gatherdata: "+e.toString());
            e
    .printStackTrace();
       
    }
       
    return myBean;
    }
    privatestaticHttpResponse doHttpGet(String url,String cookie,String referrer){
       
    try{
           
    HttpClient client =newDefaultHttpClient();
            client
    .getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
            client
    .getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET,"UTF-8");
           
    HttpGet httpGet =newHttpGet(url);
            httpGet
    .getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
            httpGet
    .setHeader(HEADER_USER_AGENT,HEADER_USER_AGENT_VALUE);
           
    if(referrer !=null&&!referrer.equals("")) httpGet.setHeader(HEADER_REFERER,referrer);
           
    if(cookie !=null&&!cookie.equals("")) httpGet.setHeader(HEADER_COOKIE,cookie);
           
    return client.execute(httpGet);
       
    }catch(Exception e){
            e
    .printStackTrace();
           
    thrownewConnectException("Failed to read content from response");
       
    }
    }
    privatestaticHttpResponse doLoginPost(String username,String password,String cookie,String token)throwsClientProtocolException,IOException{
       
    try{
           
    HttpClient client =newDefaultHttpClient();
            client
    .getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
            client
    .getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET,"UTF-8");
           
    HttpPost post =newHttpPost(URL_LOGIN_SUBMIT);
            post
    .getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
            post
    .setHeader(HEADER_USER_AGENT,HEADER_USER_AGENT_VALUE);
            post
    .setHeader(HEADER_REFERER, URL_PAGE_LOGIN);
            post
    .setHeader(HEADER_COOKIE, cookie);
            post
    .setHeader("Content-Type","application/x-www-form-urlencoded");
           
    List<NameValuePair> formParams =newArrayList<NameValuePair>();
            formParams
    .add(newBasicNameValuePair("org.apache.struts.taglib.html.TOKEN", token));
            formParams
    .add(newBasicNameValuePair("showLogin","true"));
            formParams
    .add(newBasicNameValuePair("upgrade",""));
            formParams
    .add(newBasicNameValuePair("username", username));
            formParams
    .add(newBasicNameValuePair("password", password));
            formParams
    .add(newBasicNameValuePair("submit","Secure+Log+in"));
           
    UrlEncodedFormEntity entity =newUrlEncodedFormEntity(formParams,HTTP.UTF_8);
            post
    .setEntity(entity);
           
    return client.execute(post);
       
    }catch(Exception e){
            e
    .printStackTrace();
           
    thrownewConnectException("ERROR in doLoginPost(): "+e.getMessage());
       
    }
    }
  • 相关阅读:
    Eclipse consle 输出语句中,误输中文,假死问题
    Eclipse 快捷键 (最实用)
    mysql 4种启动方式
    mysql索引的类型和优缺点
    Windows上 使用Composer安装tp5
    php 更新配置文件
    可视化工具连接Linux上的redis
    HttpClient 4 教程 第3章 HTTP状态管理
    HttpClient 4 教程 第2章 连接管理
    HttpClient 4 教程 第1章 基础
  • 原文地址:https://www.cnblogs.com/myphoebe/p/2314847.html
Copyright © 2011-2022 走看看