精华内容
下载资源
问答
  • 主要介绍了linux shell中curl 发送post请求json格式问题的处理方法,文中给大家提到了linux中使用curl发送post请求问题,需要的朋友可以参考下
  • 请求json格式

    2018-06-21 15:27:39
    Json标准格式Json标准格式Json标准格式Json标准格式Json标准格式Json标准格式Json标准格式
  • 最近在工作中,由于合作商只提供uRL,我这边需要通过HTTP请求Get或Post方式请求Json数据,然后解析JSON格式,解析json我使用的第三方库rapidjson。开发环境是64位win7,VS2015。
  • 使用Java获取制定接口的数据,使用了httpserverletrequest类。
  • Ajax请求json

    千次阅读 2019-03-30 22:16:04
    文章目录将JSON数据显示到页面查询一个雇员信息取得List集合数据异步请求Map集合数据 将JSON数据显示到页面 发送异步请求,取得json数据,服务器端将json数据返回给js的回调函数之后,可以在回调函数中输出,但是...

    将JSON数据显示到页面

    发送异步请求,取得json数据,服务器端将json数据返回给js的回调函数之后,可以在回调函数中输出,但是最终目的不是仅仅将数据输出,而是要将这些json数据显示到页面,此时就需要借助js对dom的操作功能将数据生成到HTML页面了

    查询一个雇员信息

    emp.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="login.js"></script>
    </head>
    <body>
    	<a href="javascript:void(0)">取得一个雇员的信息</a>
    	<a href="javascript:void(0)">取得所有雇员的信息</a>
    	<br><br/>
    	<table border="1">
    		<tr>
    			<td>编号</td><td>姓名</td><td>职位</td><td>薪资</td><td>领导编号</td>
    			<td>入职日期</td><td>佣金</td><td>部门编号</td>
    		</tr>
    	</table>
    </body>
    </html>
    

    login.js

    //为超链接绑定事件,点击之后会发送请求
    $(function(){
    	$("a:first").click(function(){
    	$("tr:gt(0)").remove();
    	//发送请求
    	$.ajax({
    		type:"get",
    		url:"emp/get",
    		data:"id=7788",
    		dataType:"json", //表示可以跨域访问json数据
    		async:false, //锁定浏览器,只有请求处理完毕之后(回调函数调用完成之后),才能执行后面的代码
    		success:function(data){
    			//将数据添加到表格中
    			$("table").append("<tr>" +
    					"<td>" + data.empno + "</td>" +
    					"<td>" + data.ename + "</td>" +
    					"<td>" + data.job + "</td>" +
    					"<td>" + data.sal + "</td>" +
    					"<td>" + data.hiredate + "</td>" +
    					"<td>" + data.mgr + "</td>" +
    					"<td>" + data.comm + "</td>" +
    					"<td>" + data.deptno + "</td>" +
    					"<td><button>删除</button></td>" +
    					"</tr>");
    		}
    	})
    })
    })
    
    public void getEmpById(HttpServletRequest req, HttpServletResponse resp) {
    		//取得业务层实现类对象
    		IEmpService service = new EmpServiceImpl();
    		//取得要查询的雇员的编号
    		Integer empno = Integer.parseInt(req.getParameter("id"));
    		//将查询到的数据对象转换成JSON数据
    		String json = JSON.toJSONString(service.findEmpById(empno));
    		//将JSON数据直接输出给客户端(而不是将数据保存到request内置对象,跳转到JSP,使用EL表达式输出)
    		PrintWriter out = null;
    		try {
    			out = resp.getWriter();
    			out.print(json);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		out.close();
    	}
    

    在这里插入图片描述

    取得List集合数据

    修改业务层代码

    @Override
    	public Map<String, Object> findAllSplit(String kw, Integer cp, Integer ls) {
    		Map<String, Object> map = new HashMap<String, Object>();
    		try {
    			/*将list集合中的雇员按照职位进行分组,以键值对的形式保存到map集合中,
    				key是职位名称,value是该职位下所有雇员的List集合 */
    			List<Emp> list = this.empDAO.selectSplitAll(kw, cp, ls);
    			//调用分组的方法
    			//this.groupByJob(list, map);
    			map.put("list", list);
    			//统计数据量
    			//map.put("count", this.empDAO.selectCount(kw));
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally {
    			C3P0Util.close(conn);
    		}
    		return map;
    	}
    

    定义Servlet中的代码

    public void getEmpList(HttpServletRequest req, HttpServletResponse resp) {
    		IEmpService service = new EmpServiceImpl();
    		PrintWriter out = null;
    		try {
    			out=resp.getWriter();
    			//将list集合转换成JSON输出
    			out.println(JSON.toJSONString(service.findAllSplit("", 1, 100).get("list")));
    			out.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} 
    	}
    

    定义js中的代码

    $(function(){
    	$("a:last").click(function(){
    	$("tr:gt(0)").remove();
    	//发送请求
    	$.ajax({
    		type:"get",
    		url:"emp/emp",
    		dataType:"json", //表示可以跨域访问json数据
    		async:false, //锁定浏览器,只有请求处理完毕之后(回调函数调用完成之后),才能执行后面的代码
    		success:function(data){
    			$.each(data,function(index){//data是要迭代的集合,index是索引
    				//将数据添加到表格中
    				$("table").append("<tr>" +
    						"<td>" + data[index].empno + "</td>" +
    						"<td>" + data[index].ename + "</td>" +
    						"<td>" + data[index].job + "</td>" +
    						"<td>" + data[index].sal + "</td>" +
    						"<td>" + data[index].hiredate + "</td>" +
    						"<td>" + data[index].mgr + "</td>" +
    						"<td>" + data[index].comm + "</td>" +
    						"<td>" + data[index].deptno + "</td>" +
    						"<td><button>删除</button></td>" +
    						"</tr>");
    			})			
    		}
    	})
    })
    })
    
    

    使用for循环遍历

    for(var index=0;index<data.length;index++){//data是要迭代的集合,index是索引
    				//将数据添加到表格中
    				$("table").append("<tr>" +
    						"<td>" + data[index].empno + "</td>" +
    						"<td>" + data[index].ename + "</td>" +
    						"<td>" + data[index].job + "</td>" +
    						"<td>" + data[index].sal + "</td>" +
    						"<td>" + data[index].hiredate + "</td>" +
    						"<td>" + data[index].mgr + "</td>" +
    						"<td>" + data[index].comm + "</td>" +
    						"<td>" + data[index].deptno + "</td>" +
    						"<td><button>删除</button></td>" +
    						"</tr>");
    			}			
    

    在这里插入图片描述

    异步请求Map集合数据

    修改业务层代码:

    public Map<String, Object> findAllSplit(String kw, Integer cp, Integer ls) {
    		Map<String, Object> map = new HashMap<String, Object>();
    		try {
    			/*将list集合中的雇员按照职位进行分组,以键值对的形式保存到map集合中,
    				key是职位名称,value是该职位下所有雇员的List集合 */
    			List<Emp> list = this.empDAO.selectSplitAll(kw, cp, ls);
    			//调用分组的方法
    			this.groupByJob(list, map);
    			//map.put("list", list);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally {
    			C3P0Util.close(conn);
    		}
    		return map;
    	}
    

    定义servlet中的代码:

    public void getEmpList(HttpServletRequest req, HttpServletResponse resp) {
    		IEmpService service = new EmpServiceImpl();
    		PrintWriter out = null;
    		try {
    			out=resp.getWriter();
    			//将list集合转换成JSON输出
    			out.println(JSON.toJSONString(service.findAllSplit("", 1, 100)));
    			out.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} 
    	}
    

    emp.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <base href="/ServletProject/">
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/login.js"></script>
    </head>
    <body>
    	<a href="javascript:void(0)">取得一个雇员的信息</a>
    	<a href="javascript:void(0)">取得所有雇员的信息</a>
    	<div></div>
    </body>
    </html>
    

    login.js

    $(function(){
    	$("a:last").click(function(){
    	$("tr:gt(0)").remove();
    	//发送请求
    	$.ajax({
    		type:"post",
    		url:"emp/emp",
    		dataType:"json", //接收为JSON对象
    		//async:false, //锁定浏览器,只有请求处理完毕之后(回调函数调用完成之后),才能执行后面的代码
    		success:function(data){
    			alert(data);
    			//删除之前的数据再显示新的数据
    			$("table").remove();
    			$("h1").remove();
    			//迭代Map集合,data是要迭代的map集合
    			//key:每次迭代的键值对的key值就是职位名称
    			//value:每次迭代到的键值对的value值,就是当前职位下的所有雇员的集合
    			$.each(data,function(key,value){
    			 
    				$("div").append(
    					"<table id='"+key+"'border=1>"+
    						"<tr>"+
    							"<th>编号</th><th>姓名</th><th>职位</th><th>薪资</th>" +
    							"<th>入职日期</th><th>领导编号</th><th>佣金</th>" +
    							"<th>部门编号</th><th>操作</th>"+
    						"</tr>"+
    					"</table>"
    				);
    				//迭代value,value表示当前的职位下的所有的雇员的集合
    				//index,集合的索引
    				$.each(value,function(index){
    				var date = new Date(value[index].hiredate);
    				var strDate = date.getFullYear()+"-"+date.getMonth()+"-"+date.getDate();
    				if(value[index].comm==null){
    					value[index].comm="我没有佣金!";
    				}
    				if(value[index].mgr==null){
    					value[index].mgr="我是老板!";
    				}
    				$("#"+key).append("<tr>" +
    						"<td>" + value[index].empno + "</td>" +
    						"<td>" + value[index].ename + "</td>" +
    						"<td>" + value[index].job + "</td>" +
    						"<td>" + value[index].sal + "</td>" +
    						"<td>" + strDate + "</td>" +
    						"<td>" + value[index].mgr + "</td>" +
    						"<td>" + value[index].comm + "</td>" +
    						"<td>" + value[index].deptno + "</td>" +
    						"<td><button>删除</button></td>" +
    						"</tr>");
    			})	
    			})
    		}
    	})
    })
    })
    
    展开全文
  • freemarker ajax 请求json数据格式 联动下拉 漂亮的弹出框 提示框freemarker ajax 请求json数据格式 联动下拉 漂亮的弹出框 提示框freemarker ajax 请求json数据格式 联动下拉 漂亮的弹出框 提示框freemarker ajax ...
  • AJAX异步请求JSON格式数据

    千次阅读 2019-12-04 11:18:34
    文章目录AJAX异步请求JSON格式数据AJAX异步请求AJAX的运行原理原生态的JavaScript实现异步请求实现步骤jQuery的AJAX请求$.get()函数$.post()函数$.ajax()函数异步请求和同步请求的差异JSON数据格式介绍格式1格式2...

    AJAX异步请求JSON格式数据

    AJAX异步请求

    A: 异步Asynchronous

    J: JavaScript

    A: And

    X: XML

    同步请求: 客户端请求到服务器,如果服务器没有响应,客户端只能等待,卡死

    异步请求: 客户端请求到服务器,如果服务器没有响应,客户可是自由活动

    AJAX的运行原理

    浏览器内置了AJAX的引擎

    在这里插入图片描述

    原生态的JavaScript实现异步请求

    实现步骤

    • 获取AJAX引擎
    • 设置回调函数
      • 自定义函数,服务器响应成功后,自动调用函数
    • 设置请求服务器路径
    • 提交
    <script type="text/javascript">
        /**
         * 原生态的JavaScript实现AJAX异步请求
         */
        function fn() {
            //获取AJAX引擎对象,XMLHttpRequest
            var xmlhttp = new XMLHttpRequest();
            //对象调用了事件,AJAX引擎的状态变化
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    //xmlhttp.responseText: AJAX引擎对象属性,服务器响应回来的文本数据
                    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                }
            }
            //设置服务器路径
            xmlhttp.open("GET","/WEB11/js_ajax");
            //提交请求
            xmlhttp.send();
        }
    </script>
    

    jQuery的AJAX请求

    $.get()函数

    • 参数解释
      • url: 提交的服务器地址
      • data:提交到服务器的数据 k=v&k=v
      • 回调函数:服务器响应成功,自动调用函数
      • type: 服务器响应回来的数据类型 ,text, json
    <script type="text/javascript">
        function fn() {
            /**
             *  jQuery中的函数get异步请求
             */
            $.get(
                //传递服务器路径
                "/WEB11/jquery_get",
                //传递提交到服务器的参数
                "username=zhangsan&age=20",
                //回调函数,服务器响应成功,调用函数
                //服务器响应回来的数据,传递到函数的参数
                function (data) {
                    alert(data);
                },
                //服务器响应的数据格式
                "text"
            );
        }
    </script>
    

    $.post()函数

    <script type="text/javascript">
        function fn() {
            /**
             *  jQuery中的函数post异步请求
             */
            $.post(
                //传递服务器路径
                "/WEB11/jquery_post",
                //传递提交到服务器的参数
                "username=zhangsan&age=20",
                //回调函数,服务器响应成功,调用函数
                //服务器响应回来的数据,传递到函数的参数
                function (data) {
                    alert(data);
                },
                //服务器响应的数据格式
                "text"
            );
        }
    </script>
    

    $.ajax()函数

    jQuery的异步请求函数 ajax(), 他是get和post的底层函数

    使用get或者post的时候,调用的底层都是ajax函数

    上层函数: 代码简单,可以控制内容少

    底层函数: 代码量多,灵活性很大,可以控制的内容多

    • 函数的参数
      • url:服务器请求地址
      • async: 异步请求或者同步请求,默认是true,表示异步
      • data:请求到服务器参数 k=v
      • dataType:接收服务器响应的数据格式 text json
      • error:服务器响应失败的回调函数
      • success:服务器响应成功的回调函数
      • type:get请求或者是post
    <script type="text/javascript">
        function fn() {
            /**
             * jQuery的底层函数ajax实现异步请求
             * $.ajax({
             *    k:v,
             *    k:v
             * })
             */
            $.ajax({
                //服务器路径
                url:"/WEB11/jquery_ajax",
                //提交服务器的数据
                data:"username=zhangsan&age=20",
                //响应失败的回调函数
                error:function(){alert("响应失败")},
                //响应成功的回调函数
                success:function(data){alert("响应成功"+data)},
                //设置接收的响应数据格式
                dataType:"text",
                //设置请求方式
                type:"GET"
            });
        }
    </script>
    

    异步请求和同步请求的差异

    同步请求: 没有响应,卡死

    异步请求: 没有响应,自由活动

    好处: 速度快,用户体验好,节约资源

    在这里插入图片描述

    JSON数据格式介绍

    JSON,是JavaScript支持的一种数据格式

    格式1

    ​ 对象: { “k1”:obj,“k2”:obj }

    格式2

    ​ 数组:[ obj1,obj2,obj3 ]

    数组格式和对象格式相互嵌套

    { “k1”:obj,“k2”: [o1,o2, {“k3”:o3} ] }

    [o1,o2, {“k”:v,“k2”: [03,04] } ]

    JSON练习一

     <script type="text/javascript">
    /**
     * 案例一
     *  {key:value,key:value}
     *  
     * class Person{
     *       String firstname = "张";
     *    String lastname = "三丰";
     *    Integer age = 100;
     * }
     * 
     * Person p = new Person();
     * System.out.println(p.firstname);
     */
    //JSON数据格式,表现Java中的对象
       var person = {"firstname":"张","lastname":"三丰","age":100};
       //取出三丰
       alert(person.lastname);
     </script>
    

    JSON练习二

    <script type="text/javascript">
       /**
    * 案例二
    *  [{key:value,key:value},{key:value,key:value}]
    *  JSON数据本质是数组
       *  有2个元素,每个元素都是一个对象
    */
       var json = [
          {"firstname":"张","lastname":"三丰","age":100},
          {"firstname":"周","lastname":"芷若","age":50}
      ];
       for(var i=0;i<json.length;i++){
           alert(json[i].firstname+"=="+json[i].lastname+"=="+json[i].age);
      }
    </script>
    

    JSON练习三

    <script  type="text/javascript">
     /**
    * 案例三
    * {
    *   "param":[{key:value,key:value},{key:value,key:value}]
    * }
    *  JSON数据本质是对象
      *   对象的键是param
      *   对应一个值,值是数组
      *   数组2个元素,都是对象
    */
     var json = {
        "param":[
            {"firstname":"张","lastname":"三丰","age":100},
            {"firstname":"周","lastname":"芷若","age":50}
        ]
     };
    //取出芷若
      alert(json.param[1].lastname);
    </script>
    

    JSON练习四

    <script type="text/javascript">
     /**
    * 案例四
    * {
    *   "param1":[{key:value,key:value},{key:value,key:value}],
    *   "param2":[{key:value,key:value},{key:value,key:value}],
    *   "param3":[{key:value,key:value},{key:value,key:value}]
    * }
    *  JSON数据本质是对象
      *  对象有三个键值对
      *    param1
      *      对应的值是数组
      *      数组中2个元素是对象
      *    param2
    */
     var json = {
         "param1":[
             {"firstname":"张","lastname":"三丰","age":100},
             {"firstname":"周","lastname":"芷若","age":50}
         ],
         "param2":[
             {"firstname":"张","lastname":"翠山","age":90},
             {"firstname":"谢","lastname":"逊","age":120}
         ]
     }
     //取出芷若
      alert( json.param1[1].lastname );
    </script>
    

    AJAX响应JSON格式数据

    <script type="text/javascript">
        function fn() {
            /**
             * 发送AJAX请求
             * 获取服务器响应的数据,使用JSON格式
             */
            $.get(
                "/WEB11/jquery_json",
                "username=zhangsan",
                function (data){
                    alert(data.lastname);
                },"json"
            );
        }
    </script>
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(request.getParameter("username"));
        //客户端响应JSON数据格式
        response.setContentType("text/html;charset=utf-8");
        //定义出JSON数据  {"firstname":"张","lastname":"三丰","age":100}
        //转义字符,转变字符意义
        String json =  "{ \"firstname\":\"张\",\"lastname\":\"三丰\" }";
        response.getWriter().write(json); 
    }
    

    JSON-LIB工具

    作用: Java中的数据转成JSON格式数据

    包含,对象,数组,集合

    /**
     * JSON-LIB工具
     * 对象Person存储到List
     * 集合转成JSON
     */
    public void ListToJson(){
        List<Person> list = new ArrayList<Person>();
        list.add(new Person("张三",20,"北京市海淀区"));
        list.add(new Person("李四",30,"天津市武清区"));
        list.add(new Person("王麻子",40,"北京市宣武区"));
        //JSON-LIB工具: JSONArray类静态方法fromObject
    
        int[] strs = {1,2,3};
        String json = JSONArray.fromObject(strs).toString();
        System.out.println(json);
    }
    
    /*
     * JSON-LIB工具
     * 对象Person中的数据转成JSON格式
     */
    public void ObjectToJson(){
        Person p = new Person("张三",30,"北京市海淀区");
        //JSON-LIB工具: JSONObject类静态方法fromObject
        //方法返回值本类对象,再次调用方法toString()
        String json = JSONObject.fromObject(p).toString();
        System.out.println(json);
    }
    

    Gson工具

    google公司开发的转换工具

    Java中的数据转成JSON数据

    public void ListToJson(){
        List<Person> list = new ArrayList<Person>();
        list.add(new Person("张三",20,"北京市海淀区"));
        list.add(new Person("李四",30,"天津市武清区"));
        list.add(new Person("王麻子",40,"北京市宣武区"));
        //gson工具实现转换
        Gson gson = new Gson();
        //对象调用方法 toJson(任意数据)
        String json = gson.toJson(list);
        System.out.println(json);
    }
    

    检查用户名是否被占用

    在这里插入图片描述

    <script type="text/javascript">
       function check() {
            /**
           *  获取文本框输入内容
           *  内容AJAX异步请求,发送到服务器
           *  接收响应数据 text
           *  判断结果内容,决定提示什么信息
             */
            var username = $("#username").val();
            //判断是不是填写了
          //字符串函数trim,去掉两端空格
          if(username.trim()=="")
              return ;
          //发送请求
          $.get(
              "/WEB11_store/check",
             "username="+username,
             function (data){
                  //data服务器iangy的数据 true或者false
                if(data=="true"){
                    //可以使用
                   $("#userSpan").html("用户名可以使用").css("color","green");
                }else{
                    //被占用了
                        $("#userSpan").html("用户名被占用,请尝试"+username+"_123").css("color","red");
                }
    
             },"text"
          );
        }
    </script>
    

    dao

    /**
     * 方法,检查用户名是否占用
     * 业务层传递用户名
     * 作为条件查询数据表user
     * 封装为User对象
     */
    public User check(String username) throws SQLException {
        QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
        String sql = "select * from user where username=?";
        return qr.query(sql,new BeanHandler<User>(User.class),username);
    }
    

    service

    /**
     * 检查用户名方法
     * 接收web传递用户名
     * 传递到dao层,获取返回User对象
     */
    public User check(String username){
        User user = null;
        try {
            user = new UserDao().check(username);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user;
    }
    

    web

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /**
         * 接收客户端提交用户名
         * 调用业务层方法传递用户名
         * 获取返回值User
         * 判断User对象,做出响应
         */
        String username = request.getParameter("username");
        UserService service = new UserService();
        User user = service.check(username);
        if(user==null){
            //没有数据,用户名可以使用,响应true
            response.getWriter().write("true");
        }else{
            //有数据,用户名被占用,响应false
            response.getWriter().write("false");
        }
    
    }
    

    搜索自动补全案例

    在这里插入图片描述

    <script type="text/javascript">
       function search() {
            var proId = $("#proID");
          //获取搜索框内容
          var word = $("#word").val();
          if(word.trim()=="") {
                proId.hide();
                return;
            }
          $.get(
              "/WEB11_store/search",
             "word="+word,
             function(data){
                 //div显示出来
    
                    proId.show();
                    //定义字符串,拼接商品名
                var s = "";
                //data回来的JSON,是个数组
                $.each(data,function(index,element){
                    //element就是遍历的数组元素,元素是对象
                   //alert((element.pname));
                       s+= "<div οnmοuseοut='out(this)' οnmοuseοver='over(this)' style='border-bottom: 1px solid #909090'>"+ element.pname + "</div>";
                });
                    proId.html(s);
             },"json"
          );
        }
        function over(obj) {
          $(obj).css("background-color","yellow");
        }
    
        function out(obj) {
            $(obj).css("background-color","#FFFFFF");
        }
        
    </script>
    

    dao

    
        /**
         * 根据商品名模糊查询
         * 业务层传递商品名
         * 返回集合List
         */
        public List<Product> search(String word) throws SQLException {
            QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from product where pname like ?";
            return qr.query(sql,new BeanListHandler<Product>(Product.class), "%"+word+"%");
        }
    

    service

    /**
     * 检查用户名方法
     * 接收web传递用户名
     * 传递到dao层,获取返回User对象
     */
    public User check(String username){
        User user = null;
        try {
            user = new UserDao().check(username);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user;
    }
    

    web

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /**
         * 获取客户端提交商品名
         * 调用业务层传递商品名
         * 获取查询结果List集合
         * 集合转成JSON数据格式
         * 响应客户端
         */
        String word = request.getParameter("word");
        ProductService service = new ProductService();
        List<Product> list = service.search(word);
        //集合对象转成JSON格式数据
        Gson gson = new Gson();
        String json = gson.toJson(list);
        System.out.println(json);
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write(json);
    }
    
    展开全文
  • 通过HttpClient请求Json数据

    千次阅读 2019-04-09 18:16:40
    添加依赖 <!... <groupId>org.apache.httpcomponents ... //成功获取json数据 String string = EntityUtils.toString(httpResponse.getEntity()); //查看数据 System.out.println(string); } }

    添加依赖

    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.8</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.5.8</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/fluent-hc -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>fluent-hc</artifactId>
        <version>4.5.8</version>
    </dependency>
    
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;
    
    /**
     * @author Sin
     * @date 2019/4/9/17:54
     */
    public class HttpClientTest {
        //数据接口地址,测试用例为有关天气的接口
        String url = "http://t.weather.sojson.com/api/weather/city/101030100";
    
        @Test
        public void test() throws Exception{
            CloseableHttpClient httpClient = HttpClients.createDefault();
            //url的get请求
            HttpGet httpGet = new HttpGet(url);
            //设置长连接
            httpGet.setHeader("Connection","keep-alive");
            //模拟游览器,游览器中输入about://version查看代理项,模拟自己的游览器
            httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36");
            //执行请求,并获取回应
            CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
            //成功获取json数据
            String string = EntityUtils.toString(httpResponse.getEntity());
            //查看数据
            System.out.println(string);
        }
    }
    
    
    展开全文
  • Http请求类 public class HttpResponse { #region Static Field private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1....

    Http请求类

      public class HttpResponse
        {
            #region Static Field
    
            private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
    
            #endregion Static Field
    
            #region public Method
    
            /// <summary>
            /// Get方法获取Json数据
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static string GetHttpResponseJson(string url, IWebProxy webProxy)
            {
                string json = string.Empty;
                Encoding encoding = Encoding.UTF8;
                HttpWebResponse Response = CreateGetHttpResponse(new HttpGetParametersModel()
                {
                    Url = url,
                    WebProxy = webProxy
                });
                json = GetStream(Response, encoding);
                return json;
            }
    
            /// <summary>
            /// Post Url获取Json数据
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static string PostHttpResponseJson(string url, IWebProxy webProxy)
            {
                string json = string.Empty;
                Encoding encoding = Encoding.UTF8;
                HttpWebResponse Response = CreatePostHttpResponse(new HttpPostParametersModel()
                {
                    Url = url,
                    RequestEncoding = encoding,
                    WebProxy = webProxy
                });
                json = GetStream(Response, encoding);
                return json;
            }
    
            /// <summary>
            ///  Post带参数的 Url获取Json数据
            /// </summary>
            /// <param name="url"></param>
            /// <param name="postDict"></param>
            /// <returns></returns>
            public static string PostHttpResponseJson(string url, IWebProxy webProxy, IDictionary<string, string> postDict)
            {
                string json = string.Empty;
                Encoding encoding = Encoding.UTF8;
                HttpWebResponse Response = CreatePostHttpResponse(new HttpPostParametersModel()
                {
                    Url = url,
                    DictParameters = postDict,
                    WebProxy = webProxy,
                    RequestEncoding = encoding
                });
                json = GetStream(Response, encoding);
                return json;
            }
         
    
            /// <summary>
            /// 创建GET方式的HTTP请求
            /// </summary>
            /// <param name="url">请求的URL</param>
            /// <param name="timeout">请求的超时时间</param>
            /// <param name="userAgent">请求的客户端浏览器信息,可以为空</param>
            /// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param>
            /// <returns></returns>
            public static HttpWebResponse CreateGetHttpResponse(HttpGetParametersModel getParametersModel)
            {
                if (string.IsNullOrEmpty(getParametersModel.Url))
                {
                    throw new ArgumentNullException("getParametersModel.Url");
                }
                HttpWebRequest request = WebRequest.Create(getParametersModel.Url) as HttpWebRequest;
                if (getParametersModel.WebProxy != null)
                {
                    request.Proxy = getParametersModel.WebProxy;
                }
                request.Method = "GET";
                request.UserAgent = DefaultUserAgent;
                if (!string.IsNullOrEmpty(getParametersModel.UserAgent))
                {
                    request.UserAgent = getParametersModel.UserAgent;
                }
                if (getParametersModel.Timeout.HasValue)
                {
                    request.Timeout = getParametersModel.Timeout.Value;
                }
                if (getParametersModel.Cookies != null)
                {
                    request.CookieContainer = new CookieContainer();
                    request.CookieContainer.Add(getParametersModel.Cookies);
                }
                return request.GetResponse() as HttpWebResponse;
            }
    
            /// <summary>
            /// 创建POST方式的HTTP请求
            /// </summary>
            /// <param name="url">请求的URL</param>
            /// <param name="parameters">随同请求POST的参数名称及参数值字典</param>
            /// <param name="timeout">请求的超时时间</param>
            /// <param name="userAgent">请求的客户端浏览器信息,可以为空</param>
            /// <param name="requestEncoding">发送HTTP请求时所用的编码</param>
            /// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param>
            /// <returns></returns>
            public static HttpWebResponse CreatePostHttpResponse(HttpPostParametersModel postParametersModel)
            {
                if (string.IsNullOrEmpty(postParametersModel.Url))
                {
                    throw new ArgumentNullException("postParametersModel.Url");
                }
                if (postParametersModel.RequestEncoding == null)
                {
                    throw new ArgumentNullException("postParametersModel.RequestEncoding");
                }
                HttpWebRequest request = null;
                //如果是发送HTTPS请求
                if (postParametersModel.Url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
                {
                    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                    request = WebRequest.Create(postParametersModel.Url) as HttpWebRequest;
                    request.ProtocolVersion = HttpVersion.Version10;
                }
                else
                {
                    request = WebRequest.Create(postParametersModel.Url) as HttpWebRequest;
                }
                if (postParametersModel.WebProxy != null)
                {
                    request.Proxy = postParametersModel.WebProxy;
                }
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
    
    
                if (!string.IsNullOrEmpty(postParametersModel.UserAgent))
                {
                    request.UserAgent = postParametersModel.UserAgent;
                }
                else
                {
                    request.UserAgent = DefaultUserAgent;
                }
    
                if (postParametersModel.Timeout.HasValue)
                {
                    request.Timeout = postParametersModel.Timeout.Value;
                }
                if (postParametersModel.Cookies != null)
                {
                    request.CookieContainer = new CookieContainer();
                    request.CookieContainer.Add(postParametersModel.Cookies);
                }
                //如果需要POST数据
                if (!(postParametersModel.DictParameters == null || postParametersModel.DictParameters.Count == 0))
                {
                    StringBuilder buffer = new StringBuilder();
                    int i = 0;
                    foreach (string key in postParametersModel.DictParameters.Keys)
                    {
                        if (i > 0)
                        {
                            buffer.AppendFormat("&{0}={1}", key, postParametersModel.DictParameters[key]);
                        }
                        else
                        {
                            buffer.AppendFormat("{0}={1}", key, postParametersModel.DictParameters[key]);
                        }
                        i++;
                    }
                    byte[] data = postParametersModel.RequestEncoding.GetBytes(buffer.ToString());
                    using (Stream stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
                }
                return request.GetResponse() as HttpWebResponse;
            }
    
           
            /// <summary>
            /// 发送Post Json 请求 返回JSon数据
            /// </summary>
            /// <param name="JSONData">要处理的JSON数据</param>
            /// <param name="Url">要提交的URL</param>
            /// <returns>返回的JSON处理字符串</returns>
            public static string GetResponseData(string JSONData, string Url)
            {
                byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.ContentLength = bytes.Length;
                request.ContentType = "application/json;charset=UTF-8";
                Stream reqstream = request.GetRequestStream();
                reqstream.Write(bytes, 0, bytes.Length);
    
                //声明一个HttpWebRequest请求
                request.Timeout = 60000;
                //设置连接超时时间
                request.Headers.Set("Pragma", "no-cache");
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                Encoding encoding = Encoding.UTF8;
    
                StreamReader streamReader = new StreamReader(streamReceive, encoding);
                string strResult = streamReader.ReadToEnd();
                streamReceive.Dispose();
                streamReader.Dispose();
    
                return strResult;
            }
            #endregion public Method
    
                #region Private Method
    
                /// <summary>
                /// 设置https证书校验机制,默认返回True,验证通过
                /// </summary>
                /// <param name="sender"></param>
                /// <param name="certificate"></param>
                /// <param name="chain"></param>
                /// <param name="errors"></param>
                /// <returns></returns>
            private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
            {
                return true; //总是接受
            }
    
            /// <summary>
            /// 将response转换成文本
            /// </summary>
            /// <param name="response"></param>
            /// <param name="encoding"></param>
            /// <returns></returns>
            private static string GetStream(HttpWebResponse response, Encoding encoding)
            {
                try
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        switch (response.ContentEncoding.ToLower())
                        {
                            case "gzip":
                                {
                                    string result = Decompress(response.GetResponseStream(), encoding);
                                    response.Close();
                                    return result;
                                }
                            default:
                                {
                                    using (StreamReader sr = new StreamReader(response.GetResponseStream(), encoding))
                                    {
                                        string result = sr.ReadToEnd();
                                        sr.Close();
                                        sr.Dispose();
                                        response.Close();
                                        return result;
                                    }
                                }
                        }
                    }
                    else
                    {
                        response.Close();
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                return "";
            }
    
            private static string Decompress(Stream stream, Encoding encoding)
            {
                byte[] buffer = new byte[100];
                //int length = 0;
    
                using (GZipStream gz = new GZipStream(stream, CompressionMode.Decompress))
                {
                    //GZipStream gzip = new GZipStream(res.GetResponseStream(), CompressionMode.Decompress);
                    using (StreamReader reader = new StreamReader(gz, encoding))
                    {
                        return reader.ReadToEnd();
                    }
                    /*
                    using (MemoryStream msTemp = new MemoryStream())
                    {
                        //解压时直接使用Read方法读取内容,不能调用GZipStream实例的Length等属性,否则会出错:System.NotSupportedException: 不支持此操作;
                        while ((length = gz.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            msTemp.Write(buffer, 0, length);
                        }
    
                        return encoding.GetString(msTemp.ToArray());
                    }
                     * */
                }
            }
    
            #endregion Private Method
    
        
        }
        #region GET/POST请求参数模型
    
        /// <summary>
        /// GET请求参数模型
        /// </summary>
        public class HttpGetParametersModel
        {
            /// <summary>
            /// 请求的URL(GET方式就附加参数)
            /// </summary>
            public string Url { get; set; }
    
            /// <summary>
            /// 超时时间
            /// </summary>
            public int? Timeout { get; set; }
    
            /// <summary>
            ///浏览器代理类型
            /// </summary>
            public string UserAgent { get; set; }
    
            /// <summary>
            /// Web请求代理
            /// </summary>
            public IWebProxy WebProxy { get; set; }
    
            /// <summary>
            /// Cookies列表
            /// </summary>
            public CookieCollection Cookies { get; set; }
        }
    
        /// <summary>
        /// POST请求参数模型
        /// </summary>
        public class HttpPostParametersModel : HttpGetParametersModel
        {
            /// <summary>
            /// POST参数字典
            /// </summary>
            public IDictionary<string, string> DictParameters { get; set; }
    
            /// <summary>
            /// 发送HTTP请求时所用的编码
            /// </summary>
            public Encoding RequestEncoding { get; set; }
        }
    
        #endregion GET/POST请求参数模型

    调用方法

    
    //发送post请求 表单数据
    public static string getAllUserInfo()
            {
    
    
    
                string url = "https://www.baidu.com/";
                string eid = "111111111";
                string begin = "1";
                string count = "1000";
                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add("eid", eid);
                dic.Add("data", "{begin:" + begin + ",count:" + count + "}");
                string res = HttpResponse.PostHttpResponseJson(url, null, dic);
                return res;
            }
    
    //发送post请求  json数据
    public static string GenerateTodo()
            {
              
                //-------------------
                //JObject jo = (JObject)JsonConvert.DeserializeObject(token);
                string jsondata = "JSondata";
    
                string url = "URL address";
                string res = HttpResponse.GetResponseData(jsondata, urly);
                return res;
    
    
            }

     

    展开全文
  • 原生js使用AJAX请求json数据

    千次阅读 2019-04-22 20:30:01
    原生AJAX请求json数据 <div id="user"></div> <button id="btn"></button> document.getElementById("btn").addEventListener("click",loadUser); function loadUser () { var xhr = new XMLHttpRequest()...
  • 请求本地文件报错404试了几种方法...最开始请求的static的文件中的json也是报错,就查看了很多的资料最后发现改了 本地请求需要在public文件中新建一个js文件,在js文件中添加json的本地数据文件 照着一做还真的是...
  • jQuery请求json格式数据并渲染页面

    千次阅读 2019-05-13 22:34:38
    json格式的数据文件有两种方式 一种是xxx.json文件 一种是xxx.php文件 前者是json格式的文件 后者是输出json格式的文件 前者是本地的文件 前者是本地的文件 后者是获取数据库的数据在输出json格式的php文件 先说前者...
  • Qt 实现的http请求,采用POST 方式 ,上传json数据内容的个人测试工具,支持中文转UTF-8的接口
  • ajax跨域请求json数据和js代码

    千次阅读 2017-11-26 21:23:00
    ajax跨域请求json数据时或js代码时,是不能直接请求的,由于浏览器的同源策略,只能跨域请求js代码,通过js代码来回调函数 跨域分两种:①域名不相同 ②域名相同,端口不同 下面给出ajax跨域请求json数据和js代码...
  • Angular HttpClient请求JSON和非JSON数据

    千次阅读 2018-06-13 10:31:50
    https://majing.io/posts/10000020421171从Angular 4开始,Angular的http请求改用HttpClient。添加HttpClientModule首先需要引入HttpClientModule,它需要放在BrowserModule后:import { NgModule } from '@angular/...
  • Curl发送POST请求json参数

    万次阅读 2018-12-12 09:38:07
    Curl发送POST请求json参数 curl -H "Content-Type:application/json" -X POST --data "{\"token\": \"IhcjQdkKgbVsV6jRnh\", \"timestamp\": \"20180828104900\&...
  • 1.请求工具类 package zjhj.com.myapplication.http.base; import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import java.io.BufferedReader; import java....
  • java 通过发送json,post请求,返回json数据的方法 java 通过发送json,post请求,返回json数据的方法
  • JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例) 运行环境:MyEclipse
  • 新建qt工程,利用编译好的curl库,发送post请求,发送的是json格式,返回json格式,刚开始接触curl的人可以参考。
  • Java获取post请求json数据

    万次阅读 2017-03-01 17:47:46
    java接收http请求body中的json数据 发表于 2015-12-26  | 分类于 java  | 暂无评论 一般情况下,web应用中,浏览器发送http请求,传参数的时候都是作为param传递的,java服务端通过request....
  • 目的如下:写一个接口,接口返回的数据是请求另一个接口的 在APIController中新加一个方法 package com.yunprophet.yunprophet.Controller; import org.apache.http.client.methods.CloseableHttpResponse; ...
  • 如何将请求json映射成实体类

    千次阅读 2018-09-05 11:18:56
    在开发过程中有时会遇到前台... 前端请求json如下: { "id":"3", "jobName":"test", "jobGroup":"test", "cronExpression":"0 0/1 * * *
  • axios请求JSON问题详解

    万次阅读 2018-01-01 16:16:12
    当参数是JSON对象时,默认的Content-Type是application/json。axios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' }) .then(function (response) { console.log(response); }) .catch...
  • 该脚本是为了实现将mysql数据库中的数据进行筛选之后通过post请求定时推送给目标url from django.core.management import BaseCommand from models.server import Server,Group import datetime,time from views....
  • 文章来源:linux shell中curl 发送post请求json格式问题 今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type'...
  • 向后台发送post请求,根据需要发送多个键值对,获取返回的json字符串
  • C# POST请求 json格式

    万次阅读 2017-12-12 18:44:40
    /* * url:POST请求地址 * postData:json格式的请求报文,例如:{"key1":"value1","key2":"value2"} */ public static string PostUrl(string url, string postData) { string result = "";
  • RestTemplate POST请求json和xml

    千次阅读 2019-09-10 10:33:25
    RestTemplate POST请求: Application/json; Application/xml
  • JAVA实现HTTPS协议POST请求JSON报文

    万次阅读 2017-12-11 16:48:08
    PostJson pj = new PostJson();   String content=pj.getbaowen();   String charset="UTF-8";     byte[] a = pj.post(url, content, charset);   String b = new String(a);   System.out....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 699,593
精华内容 279,837
关键字:

请求json