Java后台 如何获取 application/json的 字符串的形式的json数据
2016-07-28 00:00
537 查看
例如 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);
那么 如果我们在后台这样接收:
@RequestMapping("/user/login")
@ResponseBody
public String login(String appKey, String userToken, String v, String jsonString, String sign)
throws Exception {
你会发现并没有获取到 对应的参数内容 ,这样我们必须 对该 json 字符串进行绑定了:
@RequestMapping("/user/login")
@ResponseBody
public String login(@RequestBody JSONObject jsonObject)
throws Exception {
System.out.println(jsonObject.getString("appKey")+"登录》》》"+appKey);
我们就获取了 内容了,spring mav 帮我 解析了转成了 json对象或者是 bean对象,绑定 bean 也可以.
总之就是获取不到 请求的参数的,当然我们可以使用比较原始的方法获取 前端给过来的数据:
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);
获取了我们再进行 转换处理等等。
这样 下面的方式 使用表单提交或者是 直接的 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"));
// 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);
那么 如果我们在后台这样接收:
@RequestMapping("/user/login")
@ResponseBody
public String login(String appKey, String userToken, String v, String jsonString, String sign)
throws Exception {
你会发现并没有获取到 对应的参数内容 ,这样我们必须 对该 json 字符串进行绑定了:
@RequestMapping("/user/login")
@ResponseBody
public String login(@RequestBody JSONObject jsonObject)
throws Exception {
System.out.println(jsonObject.getString("appKey")+"登录》》》"+appKey);
我们就获取了 内容了,spring mav 帮我 解析了转成了 json对象或者是 bean对象,绑定 bean 也可以.
总之就是获取不到 请求的参数的,当然我们可以使用比较原始的方法获取 前端给过来的数据:
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);
获取了我们再进行 转换处理等等。
这样 下面的方式 使用表单提交或者是 直接的 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"));
相关文章推荐
- iOS系统字体大全
- iOS 各种控件默认高度
- Xamarin.iOS提供没有匹配的配置文件
- 用 java 做网页版微信登录(第二版)
- 点击屏幕空白处去掉键盘,手机版,APP
- java中object文档
- 六款值得推荐的android(安卓)开源框架简介
- unity3d 第十六天
- 7.27 iOS 基础(加法计算器功能实现)
- xml文档解析
- [android] 练习使用ListView(一)
- 公开课视频-《第09章 部署-Citrix-应用程序虚拟化-XenApp 7.7》
- Android Studio 2.0 汉化包+教程
- swift 基础
- 不接入sdk分享到第三方平台
- Unity2D游戏开发-1.认识2D相机
- 多亏 Sketch,我这个小码农可以自己设计 app 了
- android studio如何修改项目包名
- Android蓝牙开发深入解析
- iOS笔记