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发送POST请求返回JSON数据,需要借助一些Java库以及对HTTP协议的理解。具体步骤如下: 1. 导入相关Java库:通常情况下,发送HTTP请求需要先引入Java开发常用的HTTP客户端库,如Apache的HttpClient、OkHttp等。同时,如果需要解析JSON数据,需要引入JSON解析库,如Gson等。 2. 创建HTTP请求对象:使用HttpClient或OkHttp等库,创建HttpPost请求对象,并设置POST请求需要传递的参数、请求头等信息。 3. 发送HTTP POST请求:使用HttpClient或OkHttp等库,发送HttpPost请求,并返回服务器响应结果。 4. 解析服务器响应结果:根据实际情况,使用响应结果的数据格式,对响应结果进行JSON数据解析。通常情况下,使用Gson等JSON解析库,可以将JSON数据转换为Java对象,方便后续处理。 示例代码: 使用HttpClient发送POST请求返回JSON数据: ```java HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(URL); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("param1", "value1")); params.add(new BasicNameValuePair("param2", "value2")); httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); HttpResponse httpResponse = httpClient.execute(httpPost); String jsonString = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); Gson gson = new Gson(); MyResponse myResponse = gson.fromJson(jsonString, MyResponse.class); ``` 使用OkHttp发送POST请求返回JSON数据: ```java OkHttpClient okHttpClient = new OkHttpClient(); RequestBody requestBody = new FormBody.Builder() .add("param1", "value1") .add("param2", "value2") .build(); Request request = new Request.Builder() .url(URL) .post(requestBody) .build(); Response response = okHttpClient.newCall(request).execute(); String jsonString = response.body().string(); Gson gson = new Gson(); MyResponse myResponse = gson.fromJson(jsonString, MyResponse.class); ``` 其中,MyResponse是根据服务器返回JSON数据定义的Java对象。以上示例代码仅供参考,具体实现需要根据具体场景进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值