1. 程式人生 > >HttpClient PostMethod提交自定義引數

HttpClient PostMethod提交自定義引數

用PostMethod 模擬http post請求,需要解決傳遞字串,檔案等需求。
httpclient對此,提供了對應實現,實現方法關鍵在:RequestEntity。
示例:
RequestEntity requestEntity = newStringRequestEntity(text);  
post.setRequestEntity(requestEntity); 
示例中,是傳遞一個普通字元型引數。
這個方法代替了以前直接設定Request body。

RequestEntity是一個介面,有很多實現:
ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity
基本上從名字上就可以直接看出功能,可以從字串,流,檔案,位元組陣列中產生request body。

還有更復雜的Multipart,就是夾雜檔案和普通欄位的提交。
示例如下:
Part[] parts 
= {new StringPart("source""695132533"), new StringPart("status", URLEncoder.encode(status, "utf-8")), filePart};
postMethod.setRequestEntity(
new MultipartRequestEntity(parts, postMethod.getParams()));