zoukankan      html  css  js  c++  java
  • Java客户端HttpClient和HttpURLConnection修改请求头Host问题

    Method里有method.setRequestHeader(headerName, headerValue)方法,但是没有效果,服务端收到的Host还是IP,跟踪下源码,发现这样写可以生效

          GetMethod  method = new GetMethod(url);

          method.getParams().setVirtualHost("google.org");

    if(header_user_agent!=null)

    method.setRequestHeader("User-agent", header_user_agent);

    if(header_referer!=null)

    method.setRequestHeader("Referer", header_referer);

    /**

    * 设置代理服务

    * @param httpClient

    */

    public static void httpClientProxy(HttpClient httpClient){

    String proxy_host = Config.get().get("proxy_host");

    int proxy_port = Config.get().getInt("proxy_port", 8080);

    String proxy_user = Config.get().get("proxy_user");

    String proxy_password = Config.get().get("proxy_password");

    String proxy_domain = Config.get().get("proxy_domain");

    if(proxy_host!=null){

    httpClient.getHostConfiguration().setProxy(proxy_host, proxy_port);

    }

    if(proxy_user!=null && proxy_password!=null){

    //使用抢先认证

    httpClient.getParams().setAuthenticationPreemptive(true);

    httpClient.getState().setProxyCredentials(AuthScope.ANY, new UsernamePasswordCredentials(proxy_user,proxy_password)); 

    //NT认证代理

    if(proxy_domain!=null)

    httpClient.getState().setProxyCredentials(AuthScope.ANY,new NTCredentials(proxy_user, proxy_password, "", ""));

    }

    }

    HttpURLConnection还在研究中,先去找下sun.net.www.protocol.http的源码

    ..............终于在这里找到了http://download.java.net/jdk6/source/

    看了sun.net.www.protocol.http.HttpURLConnection

    可以这样写

      System.setProperty("sun.net.http.allowRestrictedHeaders", "true");

      conn = (HttpURLConnection) new URL(url).openConnection();

      conn.setRequestProperty( "User-agent", "Mozilla/9.0 (compatible; MSIE 10.0; Windows NT 8.1; .NET CLR 2.0.50727)" );

      conn.setRequestProperty("Host", "google.org");

  • 相关阅读:
    HDU1542 Atlantis(矩形面积并)
    HDU4784 Dinner Coming Soon(dp)
    1023: [SHOI2008]cactus仙人掌图(DP+单调队列优化)
    BZOJ 1004: [HNOI2008]Cards(群论)
    BZOJ USACO 银组 水题集锦
    BZOJ 3401: [Usaco2009 Mar]Look Up 仰望(离线+平衡树)
    BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
    BZOJ 3208: 花神的秒题计划Ⅰ
    BZOJ 2456: mode(乱搞)
    BZOJ 2424: [HAOI2010]订货(费用流)
  • 原文地址:https://www.cnblogs.com/langke93/p/2196258.html
Copyright © 2011-2022 走看看