部落客廣告聯播

2010年1月3日 星期日

Apache HttpClient 4.x版

新的HttpClient 4.x版(API)在使用上與舊有的3.x版似乎有很大的差異,例如HTTP Post表單資料要設定form parameter時的用法:








//HttpClient 3.x
//......
HttpPost post = new HttpPost( URL );
post.getParams().setParameter("input1", "val1");
HttpResponse response=httpClient.execute(post);
//.....


//HttpClient 4.x
//......
HttpPost post = new HttpPost( URL );
List formparams = new ArrayList();
formparams.add(new BasicNameValuePair( "input1", "val1" ));
UrlEncodedFormEntity postEntity =
new UrlEncodedFormEntity(formparams, "UTF-8");
post.setEntity(postEntity);
HttpResponse response=httpClient.execute(post);
//.....


4.x似乎在資料結構與使用上繁雜許多,除此之外,還有許多不同之處,詳見
http://hc.apache.org/httpcomponents-client/tutorial/html/
然而在4.x版本如上使用3.x的寫法,跑得起來嗎?答案是可以,但是非常不幸的某些加進去的parameter會不見(到底是被其他parameter覆蓋掉還是內部運作時被誤刪掉不得而知), 所以建議使用4.x版還是參照著4.x的文件內的寫法來使用才好.....

沒有留言: