新的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的文件內的寫法來使用才好.....
沒有留言:
張貼留言