json接口 Java_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 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("
");

//批量次数

Integer rowNum = rows.length;

//获取返回值

Map resultStr = new HashMap<>();

for (int i = 0;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 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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值