1.發(fā)起POST
請求的前提
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
MultipartEntity httpEntity = new MultipartEntity();
client
請求的執(zhí)行體
httpPost
是請求中的參數(shù)的主要負載體
httpEntity
是具體承載參數(shù)的地方
2.設置header
httpPost.setHeader(String name, String value)
3.設置請求值
post
的請求參數(shù)是通過
httpPost.setEntity(HttpEntity entity)
HttpEntity
這個借口有一堆實現(xiàn)類侈百,這些類都可以作為值得載體悯周,可以根據(jù)不同的請求方式選取不同的載體
image.png
可以看到有這些個實現(xiàn)類塘辅,這里舉倆個常用的
1)模擬表單的post請求
這種請求需要用到上邊我們實例化的MultipartEntity
類,顧名思義這是意思多個參數(shù),它的主要方法是
httpEntity.addPart(String name, ContentBody contentBody)
其中ContentBody
是個接口迄汛,它的實現(xiàn)類也就是對應表單提交的文字,文件等
image.png
常用的
StringBody
就是提交文字了ByteArrayBody
骤视、FileBody
鞍爱、InputStreamBody
分別對應文件的幾種格式 可以按需選擇
2)傳遞JSON
格式內(nèi)容
JSON
字符串的請求體內(nèi)容本質就是字符串,但是一般要求在頭上加上
httpPost.setHeader("Content-Type", "application/json");
主體內(nèi)容的傳遞是通過StringEntity
作為載體
new StringEntity(jsonObject.toJSONString(), "utf-8")
當參數(shù)組裝好后专酗,需要調(diào)用httpPost.setEntity(HttpEntity entity)
將數(shù)據(jù)加入,··
4.發(fā)起請求
client.execute(httpPost)
5.接受解析返回值
// 對返回結果進行處理 獲取返回的匯川數(shù)據(jù)儲存信息
HttpEntity responseEntity = response.getEntity();
StringBuilder builder = new StringBuilder();
if (responseEntity != null) {
InputStream is = responseEntity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is,UTF_8));
String tempStr;
while ((tempStr = br.readLine()) != null) {
builder.append(tempStr);
}
br.close();
}
注意一般塞入?yún)?shù)的時候可以設置編碼的地方一定要設置編碼硬霍,防止因為環(huán)境產(chǎn)生問題