<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    nighty

    折騰的年華
    posts - 37, comments - 143, trackbacks - 0, articles - 0

    httpClient3.1中文參數GET請求的解決方法

    Posted on 2008-07-16 10:31 寒武紀 閱讀(5207) 評論(2)  編輯  收藏 所屬分類: Java
        最近一個程序出了點問題,對于中文參數的GET請求,服務器無法解析出正確的參數。剛好服務器的那端是另一個項目組負責,是異構系統,當初測試的時候也是走流程化,涉及到很多工作上的協調就比較麻煩,測試也不充分,像趕鴨子上架一樣就上線了,催說是項目緊急。當然這是話外,不多廢話。
        httpClient的GetMethod類加入參數的方法是如下:
    void setQueryString(NameValuePair[] params)
              Sets the query string of this HTTP method.
     void setQueryString(String queryString)
       跟蹤一下httpClient的GetMethod的源代碼,繼承自HttpMethodBase,源碼如下:
      
    public void setQueryString(String queryString) {
       
    this.queryString = queryString;
    }

        
    public void setQueryString(NameValuePair[] params) {
       LOG.trace(
    "enter HttpMethodBase.setQueryString(NameValuePair[])");
       queryString 
    = EncodingUtil.formUrlEncode(params, "UTF-8");
    }
       EncodingUtil是httpClient定義的一個編碼工具類,由于默認設置的是UTF-8,所以對于一些系統可能就無法識別??梢栽谕獠窟@樣更改:
    method.setQueryString(EncodingUtil.formUrlEncode(pair, "GB2312"));另外,注意請求頭也要修改為對應的一致編碼方式,method.addRequestHeader("Content-type" , "text/html; charset=GB2312");如果這二個編碼不一致,就會引起亂碼。
       剛開始的時候嘗試過都使用一致的UTF-8,但是發現還是亂碼,這應該是服務器的原因。IE默認的就是采用操作系統Windows的中文編碼去進行Encoder的,服務器原先基本上都為IE服務的,所以改為GB2312就能正常識別得到。
       另外,上面提到的EncodingUtil這個工具是從apache的另一個組件codec包裝而來的,而非SUN的URLEncoder。有興趣的可以研讀一下源代碼。

    剛進場的時候戲就落幕

    Feedback

    # re: httpClient3.1中文參數GET請求的解決方法  回復  更多評論   

    2008-07-16 14:21 by po
    ms你的httpclient有些老。。我看到的是可以指定編碼的httpclient

    # re: httpClient3.1中文參數GET請求的解決方法[未登錄]  回復  更多評論   

    2009-06-07 23:59 by wangyazhen
    寫的 ,謝謝這位大哥,想問下你怎么會找到EncodingUtil這個類呢?很感興趣!
    主站蜘蛛池模板: 亚洲偷自精品三十六区| 亚洲第一页在线观看| 九九视频高清视频免费观看| 免费观看美女裸体网站| 国产区图片区小说区亚洲区| 国产特级淫片免费看| 老司机福利在线免费观看| 亚洲国产成人精品无码久久久久久综合| 亚洲日本VA午夜在线影院| 永久免费无码网站在线观看| 天天综合亚洲色在线精品| 亚洲视频在线免费| 日韩免费视频一区二区| 亚洲一区二区三区久久久久| 在线播放免费人成视频在线观看| 亚洲精品蜜夜内射| 亚洲国产高清在线一区二区三区| 一本大道一卡二大卡三卡免费| 国产亚洲av片在线观看播放| 99精品免费观看| 中文字幕乱码亚洲无线三区| 日韩精品亚洲专区在线观看| aaa毛片免费观看| 亚洲精品一卡2卡3卡三卡四卡| 色吊丝最新永久免费观看网站| 牛牛在线精品免费视频观看| 亚洲人成在线播放网站| 97公开免费视频| 亚洲AV无码片一区二区三区| 中文字幕精品无码亚洲字| 中国人xxxxx69免费视频| 亚洲丰满熟女一区二区哦| 久久久久亚洲av成人无码电影 | 区三区激情福利综合中文字幕在线一区亚洲视频1| 人人爽人人爽人人片A免费| 无码乱人伦一区二区亚洲一| 欧美最猛性xxxxx免费| sihu国产精品永久免费| 亚洲精品午夜久久久伊人| 日韩精品亚洲专区在线观看| 91久久成人免费|