<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使用小結

    Posted on 2008-06-11 15:18 寒武紀 閱讀(6927) 評論(8)  編輯  收藏 所屬分類: Java

    Jakarta的httpclient3.1是最新版本,項目中需要用程序模擬瀏覽器的GET和POST動作。在使用過程中遇到不少問題。
    1. 帶附件的POST提交
        最開始都是使用MultipartPostMethod這個類,現在已經廢棄這個類了。API說明:Deprecated. Use MultipartRequestEntity in conjunction with PostMethod instead.   使用PostMethod可以實現的功能,就沒有必要再弄一個MultipartPostMethod了。下面是一段最簡單的示例:

    PostMethod post = new PostMethod();
            NameValuePair[] pairs 
    = new NameValuePair[2];
            pairs[
    0= new NameValuePair("para1""value1");
            pairs[
    0= new NameValuePair("para2""value2");
            post.setRequestBody(pairs);
            HttpClient client 
    = new HttpClient();
            
    try {
                client.executeMethod(post);
            }
     catch (HttpException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();
            }
       這是針對一般的form形式的提交,而且這個form里面不帶附件的。如果帶附件,那么這種方法就不起作用,附件上傳的參數和普通參數無法一同在服務器獲取到。org.apache.commons.httpclient.methods.multipart 這個包就是為處理文件上傳這種多形式參數的情況的。最主要的類是Part(代表一種post object),它有二個比較重要的子類:FilePart和StringPart,一個是文件的參數,另一個就是普通的文本參數。它的典型使用方法如下:
    String url = "http://localhost:8080/HttpTest/Test";
             PostMethod postMethod 
    = new PostMethod(url);
             
             StringPart sp 
    = new StringPart("TEXT""testValue");
             FilePart fp 
    = new FilePart("file""test.txt"new File("./temp/test.txt"));
             
             MultipartRequestEntity mrp
    = new MultipartRequestEntity(new Part[]{sp, fp}, postMethod
                     .getParams());
             postMethod.setRequestEntity(mrp);
             
             
    //執行postMethod
             HttpClient httpClient = new HttpClient();
             
    try {
                httpClient.executeMethod(postMethod);
            }
     catch (HttpException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();
            }
        在第二行PostMethod postMethod = new PostMethod();后面,有人說需要使用postMehtod.setRequestHeader("Content-type", "multipart/form-data"); Content-type的請求類型進行更改。但是我在使用過程沒有加上這一句,查了一下httpCleint的默認Content-type是application/octet-stream。應該是沒有影響的。對于MIME類型的請求,httpclient建議全用MulitPartRequestEntity進行包裝,就是上面的用法。

    2.  參數中文的處理問題
        httpclient的默認編碼都是ISO-8859-1,那肯定就無法支持中文參數了。引用一下這篇文章:http://thinkbase.net/w/main/Wiki?HttpClient+POST+%E7%9A%84+UTF-8+%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98 ,按照作者的說法,就可以正常解決中文編碼的問題。其中最關鍵的是修改EncodingUtil這個類的一個方法實現。另外,FilePart和StringPart的構造方法都有一個帶編碼指定的參數,為了減少問題的出現,建議所有的都帶上統一的編碼,包括postMethod.getParams()。示例如下:
    String url = "http://localhost:8080/HttpTest/Test";
             PostMethod postMethod 
    = new PostMethod(url);
             
             StringPart sp 
    = new StringPart("TEXT""testValue""GB2312");
             FilePart fp 
    = new FilePart("file""test.txt"new File("./temp/test.txt"), null"GB2312");
             
             postMethod.getParams().setContentCharset(
    "GB2312");
             MultipartRequestEntity mrp
    = new MultipartRequestEntity(new Part[]{sp, fp}, postMethod
                     .getParams());
             postMethod.setRequestEntity(mrp);
             
             
    //執行postMethod
             HttpClient httpClient = new HttpClient();
             
    try {
                httpClient.executeMethod(postMethod);
            }
     catch (HttpException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();
            }



    剛進場的時候戲就落幕

    Feedback

    # re: httpclient3.1使用小結  回復  更多評論   

    2008-06-13 15:49 by ~上善若水~
    傳智播客ajax全套內部視頻獨家發布,免費下載

    1.ajax 入門

    2.ajax 原理

    3.ajax 簡單實例

    4.ajax 無限級聯動菜單

    5.ajax 簡易聊天室

    6.ajax 開源框架簡介

    7.DWR 框架源碼分析一

    8.DWR 框架源碼分析二

    9.DWR 框架源碼分析三

    10.DWR 框架源碼分析四

    11.DWR框架源碼分析五

    12.SSH + DWR完成商城驅動

    13. Extjs 簡介

    14 Extjs&nbsp; 簡單實例

    15.SSH + Extjs 開發系列之OA一

    16. SSH + Extjs 開發系列之OA二

    17. SSH + Extjs 開發系列之OA三

    18. SSH + Extjs 開發系列之OA四

    19 .SSH + Extjs 開發系列之OA五

    20.&nbsp;SSH + Extjs 開發系列之OA六

    21. SSH + Extjs 開發系列之OA七

    22.&nbsp;SSH + Extjs 開發系列之OA八

    23.SSH + Extjs 開發系列之OA九

    24.SSH + Extjs 開發系列之OA十

    25. ajax 前景之我見

    下載地址:http://www.ibeifeng.com/read.php?tid=2338&u=5043

    # re: httpclient3.1使用小結  回復  更多評論   

    2008-09-05 13:49 by HttpClient

    標題 請輸入標題
    姓名 請輸入你的姓名
    主頁
    請輸入驗證碼
    驗證碼 *

    內容(請不要發表任何與政治相關的內容) 請輸入評論內容


    Remember Me?
    登錄 使用高級評論 新用戶注冊 返回頁首 恢復上次提交
    [使用Ctrl+Enter鍵可以直接提交]




    相關鏈接:
    怎么優化使用asp.net ajax的網站速度
    碰到技術難題?馬上使用找找看!
    如何使用Div+CSS布局?
    淘金高階4級全真試題(2002.1--2007.12)13套題(MP3版)

    # Seo News  回復  更多評論   

    2009-05-18 10:05 by Seo News
    Hello everyone. Looks are part of business. A businessman should never stand out more than his customers. His mannerisms, his clothes, everything about him... Moderation is the key.
    I am from Barbados and , too, and now am writing in English, give true I wrote the following sentence: "Professional seo services increase natural rankings.Webmarketing is a california seo search engine optimization company with offices in san francisco los angeles offering seo search engine."

    Thanks for the help ;-), Kristin.

    # re: httpclient3.1使用小結  回復  更多評論   

    2010-10-23 15:28 by 張路
    http://www.tkk7.com/nighty/archive/2008/06/11/207121.htm

    # shi  回復  更多評論   

    2010-11-09 16:29 by uk dress
    too, and now am writing in English, give true I wrote the following sentence: "Professional seo services increase natural rankings.Webmarketing is a california seo search engine optimization company with offices in san francisco los angeles offering seo search engine."

    # tag heuer replica  回復  更多評論   

    2011-01-07 10:29 by tag heuer replica
    In 1990, the john henry has tortuous lavish re-birth when ponderous was registered further.

    # re: httpclient3.1使用小結  回復  更多評論   

    2011-05-24 14:11 by hair extensions
    I like it, I learned something today! Thanks!

    # shox r2  回復  更多評論   

    2011-06-02 14:29 by shox r2
    ok,i know.
    主站蜘蛛池模板: 日韩精品无码专区免费播放| 麻花传媒剧在线mv免费观看| 免费v片在线观看视频网站| 在线jyzzjyzz免费视频| 国产AⅤ无码专区亚洲AV| 亚洲无成人网77777| 黄页网站在线观看免费| 97公开免费视频| 亚洲国产精品尤物yw在线| 日韩精品一区二区亚洲AV观看| 亚洲精品无码久久久久YW| 日韩视频免费在线观看| 可以免费观看的一级毛片| 亚洲精彩视频在线观看| 九九九精品视频免费| 香蕉97超级碰碰碰免费公| 国产精品亚洲综合一区| 亚洲综合av一区二区三区| 国产一级片免费看| 免费国产怡红院在线观看| 亚洲欧洲春色校园另类小说| 国产福利免费视频| 午夜一级毛片免费视频| 老汉色老汉首页a亚洲| 黄网站色视频免费观看45分钟| 久草视频免费在线| 亚洲乱亚洲乱妇无码麻豆| 女bbbbxxxx另类亚洲| 足恋玩丝袜脚视频免费网站| 国内精品久久久久久久亚洲| 亚洲欧美日韩综合俺去了| 91免费国产精品| 亚洲人成色7777在线观看| AV激情亚洲男人的天堂国语| 免费毛片a在线观看67194 | 国产亚洲精品xxx| 深夜A级毛片视频免费| 国产成人免费爽爽爽视频| 久久亚洲日韩精品一区二区三区| 2022免费国产精品福利在线 | 国产精品国产午夜免费福利看 |