java 通过发送json,post请求,返回json数据

1.工具类

import lombok.extern.slf4j.Slf4j;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

@Slf4j
public class HttpUtils {

      public static String sendPost(String param,String urls){
          StringBuffer sb=new StringBuffer();
          try{
              //创建url
              // 创建url资源
              URL url = new URL(urls);
              // 建立http连接
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
              // 设置允许输出
              conn.setDoOutput(true);
              // 设置允许输入
              conn.setDoInput(true);
              // 设置不用缓存
              conn.setUseCaches(false);
              // 设置传递方式
              conn.setRequestMethod("POST");
              // 设置维持长连接
              conn.setRequestProperty("Connection", "Keep-Alive");
              // 设置文件字符集:
              conn.setRequestProperty("Charset", "UTF-8");
              // 转换为字节数组
              byte[] data = param.getBytes();
              // 设置文件长度
              conn.setRequestProperty("Content-Length", String.valueOf(data.length));
              // 设置文件类型:
              conn.setRequestProperty("Content-Type", "application/json");
              // 开始连接请求
              conn.connect();
              OutputStream out = new DataOutputStream(conn.getOutputStream()) ;
              // 写入请求的字符串
              out.write(data);
              out.flush();
              out.close();
              // 请求返回的状态
              log.info(String.valueOf(conn.getResponseCode()));
              InputStream in;
              if(HttpURLConnection.HTTP_CREATED == conn.getResponseCode()){
                  // 请求返回的数据
                  in = conn.getInputStream();
              }else{
                  // 请求返回的错误信息
                  in = conn.getErrorStream();
              }
              try{
                  String readLine = new String();
                  BufferedReader responseReader=new BufferedReader(new InputStreamReader(in,"UTF-8"));
                  while((readLine=responseReader.readLine())!=null){
                      sb.append(readLine).append("\n");
                  }
                  responseReader.close();
              }catch (Exception e1) {
                  throw new RuntimeException(e1.getMessage());
              }
              return sb.toString();
          }catch (Exception e){
              throw new RuntimeException(e.getMessage());
          }
      }

}

2.调用

String sendResult = HttpUtils .sendPost(jsonString,url);
        // 将json字符串转化为json对象
        JSONObject resultJson = JSONObject.parseObject(sendResult);
        // 判断返回值code并处理
        if(Integer.parseInt(resultJson.get("code").toString()) == 200){
            .........................................
        }

你可能感兴趣的:(java)