1. 程式人生 > >解決post請求接收資料型別為text/html時引數傳遞的問題

解決post請求接收資料型別為text/html時引數傳遞的問題

當我們需要post資料的時候,如果接收方接收的格式是application/json,我們可以按如下所示操作,將資料放入json體中。

對方是json時操作

如果對方接收格式是text/html要怎麼將引數傳遞過去呢?
之前採取的方式是在將引數寫在params中,如下圖所示

這裡寫圖片描述
發現對方還是取不到我post給他的引數。

正確操作如下

  • 通過postman方式
    將資料放入下圖中的key,value位置。
    這裡寫圖片描述
  • 通過程式碼post
    將引數params(jsonObject格式) ,轉成kv 結構 , 拼接到x-www-form-urlencoded中的key value下

程式碼參考:

        DefaultHttpClient httpClient = new
DefaultHttpClient(); String queryString=MapUtils.map2QueryString(params).substring(1);//分割成一對對kv HttpPost method = new HttpPost(url); StringEntity entity = new StringEntity(queryString,"utf-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/x-www-form-urlencoded"
);//這邊注意不是設定成x-www-form-urlencoded method.setEntity(entity);// try { HttpResponse result = httpClient.execute(method); JSONObject jsonResult = null; String str = ""; Header[] headers = result.getAllHeaders(); for (Header header : headers) { System.out.println(header.toString()); } /** 讀取伺服器返回過來的json字串資料 **/
str = EntityUtils.toString(result.getEntity()); /** 把json字串轉換成json物件 **/ jsonResult = JSONObject.fromObject(str); System.out.println(jsonResult); } catch (Exception e) { System.out.println("post請求提交失敗:" + url); }