java获取Json和http状态码

最近再做接口自动化测试,其中有几个方法比较重要

1.获取http状态码

        /*
         * 返回接口状态码
         * */
        public static String getHttpCode(String url) {
            String code = null;
            try {
                URL u = new URL(url);
                URLConnection uc = u.openConnection();
                HttpURLConnection huc = (HttpURLConnection)uc;
                code = new Integer(huc.getResponseCode()).toString();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return code;
        }

2.获取json

        /*
         * 3个参数
         * */
        public static String getJson(String base_url, String para1, String value1, String para2, String value2, String para3, String value3) {
            String url = base_url + para1 + "=" + value1 + "&"
                                  + para2 + "=" + value2 + "&"
                                  + para3 + "=" + value3;

            String result = "";

            String code = getHttpCode(url);
            if(!code.startsWith("2")) {
                result = "*******接口的状态码为:"+code+"*******"+url;
            }else {
                StringBuilder json = new StringBuilder();
                try {
                    URL u = new URL(url);
                    URLConnection uc = u.openConnection();
                    BufferedReader bd = new BufferedReader(new InputStreamReader(uc.getInputStream(),"UTF-8"));
                    String s = null;
                    while((s=bd.readLine())!=null) {
                        json.append(s);
                    }
                    bd.close();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                result = json.toString();
            }
            return result;
        }

3.获取json中的某个值,如{"a","1"}

        public static String getJsonValue(String json, String name){

            String s = null;
            JSONObject jobj = JSONObject.fromObject(json);
            //JSONObject jobj = JSONObject.fromObject("{‘total‘:‘0‘,‘message‘:‘用户编号不能为空‘,‘data‘:‘‘,‘code‘:‘2‘,‘rows‘:‘‘}");
            Iterator it = jobj.keys();
            while(it.hasNext()){
                String key = it.next().toString();
                String value = jobj.getString(key);
                if(key.equals(name)) {
                    s = value.trim();
                }
            }
            return s;

        } 

4.获取双重json中第二维json的某个值,如{"a","1",{"b","1"}}

        public static String getJsonValue(String json,String jdate, String name){

            JSONObject jobj = JSONObject.fromObject(json);
            JSONObject dataList=jobj.getJSONObject(jdate);
            String balance =dataList.getString(name);
            return balance;
        } 

5.获取json中包含数组中的第N个json,如{"a","1","b","[{"a2","1"},{"b2","1"}]"}

    /*获取jsonArray*/
    public static String getJsonArray(String json, String arr_name, int index) {

        JSONObject jobj = JSONObject.fromObject(json);
        JSONArray childs= jobj.getJSONArray(arr_name);
        JSONObject job = childs.getJSONObject(index);

        return job.toString();
    }

6.连接数据库

        public static List<String> connectSqlList(String sql,String userNum, String col) {
            String url = "jdbc:mysql://172.16.30.209:3306/a_test";
            String name = "gmsd";
            Connection con = null;
            ResultSet rs = null;
            String rssql = null;

            List<String> list = new ArrayList<String>();

             try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                con = DriverManager.getConnection(url,name,"dlnu1234");
                PreparedStatement pst = con.prepareStatement(sql);
                pst.setString(1, userNum);

                rs = pst.executeQuery();
                while(rs.next()) {
                    rssql = rs.getString(col);
                    list.add(rssql);
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                try {
                    rs.close();
                    con.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
             return list;

        }
时间: 2024-12-30 03:52:03

java获取Json和http状态码的相关文章

curl获取http请求的状态码

$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); 获取http请求后返回的状态码 $http_status =

java获取随机时间的源码片段

将写内容过程中重要的一些内容做个记录,如下资料是关于java获取随机时间的片段的内容. import java.text.parseexception; import java.text.simpledateformat; import java.util.date; public class getrandomtiem { public static void main(string []args){ simpledateformat format = new simpledateformat

java 获取json字符串中key对应的值

用到了Gson的JsonParser maven项目引入 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.3</version></dependency> 也可以直接去这个网址下载jar包 https://mvnrepository.com/artifact/com.g

java获取json格式中的值

先右键项目,然后点击properties,然后选中java Builder Path,选择add external jars,引入需要引入json.jar package web; import org.json.JSONArray; import org.json.JSONException; public class josn { public static void main(String[] args) throws JSONException { String str = "[{'co

Java获取字符串的CRC8校验码(由C程序的代码修改为了Java代码)

CRC8算法请百度,我也不懂,这里只是把自己运行成功的结构贴出来了.方法CRC8_Tab这里没有处理,因为我的程序中没有用到. package com.crc; public class CCRC8_3 { /*public static int[] CRC8_TAB = { 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7

MFC的EXE调用VBS,并获取VBS的返回值状态码

VBS代码: Dim ageage = 21WScript.Quit age MFC的EXE代码: //获取EXE同目录下的VBS文件 TCHAR szExeSelfPath[_MAX_PATH] = {0}; ::GetModuleFileName(NULL,szExeSelfPath,_MAX_PATH); CString strExeSelfPath = szExeSelfPath; strExeSelfPath = strExeSelfPath.Left(strExeSelfPath.R

跳转常规 -- 为什么不要使用404、500等http状态码作为业务代码响应

不要使用HTTP状态码作为业务代码响应 HTTP状态码 是指浏览器访问网址,成功或异常时浏览器或服务器告知用户的代码数字,它指的是网络或服务器的状态,有着不同的含义. 参加MDN.Java Api,常见的状态码: 200 OK 请求成功 301 重定向 400 错误请求 401 需要访问授权,通常是basic授权 403 禁止访问该地址 404 访问地址不存在 500 服务器异常 业务代码 业务代码是业务流程中可能产生的结果,比如:用户密码不正确.用户不存在.订单不存在.第三方api请求错误等.

用Java发起HTTP请求与获取状态码(含状态码列表)

转自:https://blog.csdn.net/xyw591238/article/details/51072697 在使用Java请求Web程序比如访问WebService接口时,通常需要先判断访问URL的有效性,这里就Java发送HTTP请求的方式做简单记录,按照前辈们的说法,Java发HTTP请求,最常见的无非是两种,一种是用java.net.URLConnection,另一种则是大名鼎鼎的HttpClient.使用java.net.URLConnection比较麻烦,而HttpClie

Python定时返回网址状态码&&网页内容是否为json数据

#!/usr/bin/env python#-*- coding:utf:8 -*- import requests,sys,os,time # 判断传值数知否匹配if len(sys.argv) == 3:passelse:    print 'Usage: %s <monitoring_name> <interval_time>'%(sys.argv[0])    sys.exit(2) url = 'url地址' # 覆盖存放检测值文件def successful_state