例如 httpClient 模擬前端 調用生成json字符串:前端
// json樣式
// 接收參數json列表
JSONObject jsonParam = new JSONObject();
jsonParam.put("appKey", "00002");
jsonParam.put("userToken", "12");//
jsonParam.put("v", "1.0");//
jsonParam.put("jsonString", jo());//
jsonParam.put("sign", sign);/
System.out.println("json格式傳參>>>>"+jsonParam.toString());
StringEntity entitystring =
new StringEntity(jsonParam.toString(),"utf-8");//解決中文亂碼問題
entitystring.setContentEncoding("UTF-8");
entitystring.setContentType("application/json");
post.setEntity(entitystring); spring
那麼 若是咱們在後臺這樣接收:json
@RequestMapping("/user/login")
@ResponseBody
public String login(String appKey, String userToken, String v, String jsonString, String sign)
throws Exception {app
你會發現並無獲取到 對應的參數內容 ,這樣咱們必須 對該 json 字符串進行綁定了:post
@RequestMapping("/user/login")
@ResponseBody
public String login(@RequestBody JSONObject jsonObject)
throws Exception {加密
System.out.println(jsonObject.getString("appKey")+"登陸》》》"+appKey);code
咱們就獲取了 內容了,spring mav 幫我 解析了轉成了 json對象或者是 bean對象,綁定 bean 也能夠.orm
總之就是獲取不到 請求的參數的,固然咱們可使用比較原始的方法獲取 前端給過來的數據:對象
StringBuffer sb = new StringBuffer() ;
InputStream is = request.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = "" ;
while((s=br.readLine())!=null){
sb.append(s) ;
}
String strint =sb.toString();
System.out.println("流裏面的數據》》》"+strint);token
獲取了咱們再進行 轉換處理等等。
這樣 下面的方式 使用表單提交或者是 直接的 json 格式數據的提交,而不是 json字符串
@RequestMapping("/user/login")
@ResponseBody
public String login(String appKey, String userToken, String v, String jsonString, String sign)
throws Exception {
httpClient的表單提交方式:
List<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>(); parameters.add(new BasicNameValuePair("appKey", "00002")); parameters.add(new BasicNameValuePair("userToken", "12"));//對應用戶的 token parameters.add(new BasicNameValuePair("v", "1.0")); parameters.add(new BasicNameValuePair("jsonString", jo())); parameters.add(new BasicNameValuePair("sign", sign)); System.out.println("簽名》》》"+sign); System.out.println("加密串"+jo()); post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));