JAVA接口,json传递

public static String getJsonData(JSONObject jsonParam) {
		StringBuffer sb=new StringBuffer();
		String resultJsonto = new String();
		try {
			// 创建url资源
			URL url = new URL("http://XXXXXXXXX");
			// 建立http连接
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			// 设置允许输出
			conn.setDoOutput(true);
			conn.setConnectTimeout(10000);
			conn.setReadTimeout(100000);
			// 设置允许输入
			conn.setDoInput(true);
			// 设置不用缓存
			conn.setUseCaches(false);
			// 设置传递方式
			conn.setRequestMethod("POST");
			// 设置维持长连接
			conn.setRequestProperty("Connection", "Keep-Alive");
			// 设置文件字符集:
			conn.setRequestProperty("Charset", "UTF-8");
			// 转换为字节数组
			//byte[] data = (jsonParam.toString()).getBytes();
			byte[] data = jsonParam.toString().getBytes();
			// 设置文件长度
			conn.setRequestProperty("Content-Length", String.valueOf(data.length));
			// 设置文件类型:
			conn.setRequestProperty("contentType", "application/json");
			// 开始连接请求
			conn.connect();
			OutputStream out = new DataOutputStream(conn.getOutputStream()) ;
			// 写入请求的字符串
			out.write(jsonParam.toString().getBytes());
			out.flush();
			out.close();
			System.out.println(conn.getResponseCode());
			// 请求返回的状态
			if (HttpURLConnection.HTTP_OK == conn.getResponseCode()){
				System.out.println("连接成功");
				// 请求返回的数据
				InputStream in1 = conn.getInputStream();
				try {
					String readLine=new String();
					BufferedReader responseReader=new BufferedReader(new InputStreamReader(in1,"UTF-8"));
					while((readLine=responseReader.readLine())!=null){
						sb.append(readLine).append("\n");
					}
					responseReader.close();
					String json = sb.toString();
					//第一次解码
					String deCode = deCodeBase(json);
					//分割字符串
					String nextIndex =deCode.substring(deCode.indexOf("{"), deCode.length());
					//转换json格式
					JSONObject jsonResult =JSONObject.fromObject(nextIndex); 
					//获取解码message值
					String deCodename = deCodeBase(jsonResult.getString("message"));
					//获取result值
					String resultname = jsonResult.getString("result");
					//返回新JSONObject
					JSONObject resultJson = new JSONObject();
					resultJson.put("message", deCodename);
					resultJson.put("result", resultname);
					//实体类对象转换成String类型的JSON字符串
					resultJsonto = resultJson.toString();
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			} else {
				System.out.println("连接失败");
				InputStream error = conn.getErrorStream();
				String errorLine=new String();
				BufferedReader errorresponseReader=new BufferedReader(new InputStreamReader(error,"UTF-8"));
				while((errorLine=errorresponseReader.readLine())!=null){
					sb.append(errorLine).append("\n");
				}
				errorresponseReader.close();
				String errorData = sb.toString();
				System.err.println("错误信息:"+errorData);
			}
		} catch (Exception e) {
			System.out.println("error");
			e.printStackTrace();
		}
		return resultJsonto;
	}

  调用接口

public Map<Integer,Object> work(String str1,String str2,String file) throws Exception {
		str1 = "123";						
		str2 = "456";					
		String mima = UUID.randomUUID().toString();
		//密钥加密
		String requestData = enCodeBase(str1);
		//密钥加密
		String sign = DigestUtils.md5DigestAsHex(str2.getBytes());
		//读取文本文件
		String name = readFileContent(file);
		//获取文本文件内参数
		String utf8 = "";
		try {
			utf8 = new String(name.getBytes(), "utf-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		System.err.println("utf8:"+utf8);
		//切割字符串,获取参数
		String[] rows = utf8.split("<br>");
		//批量次数
		Integer rowNum = rows.length;
		//获取返回值
		Map<Integer,Object> resultStr = new HashMap<>();
		for (int i = 0;i<rows.length;i++) {
			System.err.println("Stirng:"+rows[i]);
			//Stirng 转为jsonJSONObject
			JSONObject string1 = JSONObject.fromObject(rows[i]);
			//调用接口
			String str=UserController.getJsonData(string1);
			//防止结果到map
			resultStr.put(i, str);
		}
		for(Entry<Integer, Object> entry : resultStr.entrySet()){
			Integer mapKey = entry.getKey()+1;
		    Object mapValue = entry.getValue();
		    System.out.println("批次:"+mapKey+" : 错误信息:"+mapValue);
		}
		return resultStr;
	}

  相关加密,导入文件方法

//base64位的加密状态
	public static String enCodeBase(String str){
		byte[] enCodeBase;
		try {
			enCodeBase = Base64.encodeBase64(str.getBytes("utf-8"));
			String enCode = new String(enCodeBase,"UTF-8");
			return enCode;
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return "出现异常";
		}
	}
	//base64位的解密
	public static String deCodeBase(String str){
		byte[] deCodeBase64;
		try {
			deCodeBase64 = Base64.decodeBase64(str.getBytes("UTF-8"));
			String deCode = new String(deCodeBase64,"UTF-8");
			return deCode;
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return  "出现异常";
		}
	}
	//获取文本文件
	public static String readFileContent(String fileName) {
	    File file = new File(fileName);
	    BufferedReader reader = null;
	    StringBuffer sbf = new StringBuffer();
	    try {
	        reader = new BufferedReader(new FileReader(file));
	        String tempStr;
	        while ((tempStr = reader.readLine()) != null) {
	            sbf.append(tempStr);
	        }
	        reader.close();
	        return sbf.toString();
	    } catch (IOException e) {
	        e.printStackTrace();
	    } finally {
	        if (reader != null) {
	            try {
	                reader.close();
	            } catch (IOException e1) {
	                e1.printStackTrace();
	            }
	        }
	    }
	    return sbf.toString();
	}

  

posted @ 2019-12-11 15:19  Aaron_zyq  阅读(2083)  评论(0编辑  收藏  举报