Jakarta的httpclient3.1是最新版本,項(xiàng)目中需要用程序模擬瀏覽器的GET和POST動(dòng)作。在使用過(guò)程中遇到不少問(wèn)題。
1. 帶附件的POST提交
最開(kāi)始都是使用MultipartPostMethod這個(gè)類,現(xiàn)在已經(jīng)廢棄這個(gè)類了。API說(shuō)明:Deprecated. Use MultipartRequestEntity
in conjunction with PostMethod
instead. 使用PostMethod可以實(shí)現(xiàn)的功能,就沒(méi)有必要再弄一個(gè)MultipartPostMethod了。下面是一段最簡(jiǎn)單的示例:
































2. 參數(shù)中文的處理問(wèn)題
httpclient的默認(rèn)編碼都是ISO-8859-1,那肯定就無(wú)法支持中文參數(shù)了。引用一下這篇文章: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 ,按照作者的說(shuō)法,就可以正常解決中文編碼的問(wèn)題。其中最關(guān)鍵的是修改EncodingUtil這個(gè)類的一個(gè)方法實(shí)現(xiàn)。另外,F(xiàn)ilePart和StringPart的構(gòu)造方法都有一個(gè)帶編碼指定的參數(shù),為了減少問(wèn)題的出現(xiàn),建議所有的都帶上統(tǒng)一的編碼,包括postMethod.getParams()。示例如下:




















剛進(jìn)場(chǎng)的時(shí)候戲就落幕