Java後臺 如何獲取 application/json的 字符串的形式的json數據

例如 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"));

相關文章
相關標籤/搜索