java模拟post请求发送json的例子

发布时间 - 2026-01-11 02:50:47    点击率:

java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,

方法一:

package main.utils;

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

public class HttpUtilTest {
  Log log = new Log(this.getClass());//初始化日志类
  /**
   * @作用 使用urlconnection
   * @param url
   * @param Params
   * @return
   * @throws IOException
   */
  public String sendPost(String url,String Params)throws IOException{
    OutputStreamWriter out = null;
    BufferedReader reader = null;
    String response="";
    try {
      URL httpUrl = null; //HTTP URL类 用这个类来创建连接
      //创建URL
      httpUrl = new URL(url);
      //建立连接
      HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
      conn.setRequestMethod("POST");
      conn.setRequestProperty("Content-Type", "application/json");
      conn.setRequestProperty("connection", "keep-alive");
      conn.setUseCaches(false);//设置不要缓存
      conn.setInstanceFollowRedirects(true);
      conn.setDoOutput(true);
      conn.setDoInput(true);
      conn.connect();
      //POST请求
      out = new OutputStreamWriter(
          conn.getOutputStream());
      out.write(Params);
      out.flush();
      //读取响应
      reader = new BufferedReader(new InputStreamReader(
          conn.getInputStream()));
      String lines;
      while ((lines = reader.readLine()) != null) {
        lines = new String(lines.getBytes(), "utf-8");
        response+=lines;
      }
      reader.close();
      // 断开连接
      conn.disconnect();

      log.info(response.toString());
    } catch (Exception e) {
    System.out.println("发送 POST 请求出现异常!"+e);
    e.printStackTrace();
    }
    //使用finally块来关闭输出流、输入流
    finally{
    try{
      if(out!=null){
        out.close();
      }
      if(reader!=null){
        reader.close();
      }
    }
    catch(IOException ex){
      ex.printStackTrace();
    }
  }

    return response;
  }
}

方法二:使用httpclient实现

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import main.utils.Log;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

//post请求方法
  public String sendPost(String url, String data) {
    String response = null;
    log.info("url: " + url);
    log.info("request: " + data);
    try {
      CloseableHttpClient httpclient = null;
      CloseableHttpResponse httpresponse = null;
      try {
        httpclient = HttpClients.createDefault();
        HttpPost httppost = new HttpPost(url);
        StringEntity stringentity = new StringEntity(data,
            ContentType.create("text/json", "UTF-8"));
        httppost.setEntity(stringentity);
        httpresponse = httpclient.execute(httppost);
        response = EntityUtils
            .toString(httpresponse.getEntity());
        log.info("response: " + response);
      } finally {
        if (httpclient != null) {
          httpclient.close();
        }
        if (httpresponse != null) {
          httpresponse.close();
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return response;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java  # post  # 发送json  # java中post请求json  # java使用post发送json  # Java后台基于POST获取JSON格式数据  # java 通过发送json  # post请求  # 返回json数据的方法  # 浅谈Java代码的 微信长链转短链接口使用 post 请求封装Json(实例)  # java 实现通过 post 方式提交json参数操作  # 两种  # 第二种  # 第一种  # 大家多多  # HTTP  # BufferedReader  # null  # response  # httpUrl  # reader  # IOException  # throws  # return  # OutputStreamWriter  # sendPost  # String  # conn  # alive  # connection  # application 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Linux系统运维自动化项目教程_Ansible批量管理实战  如何获取免费开源的自助建站系统源码?  ,怎么在广州志愿者网站注册?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel怎么为数据库表字段添加索引以优化查询  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  轻松掌握MySQL函数中的last_insert_id()  Laravel如何发送系统通知?(Notification渠道示例)  如何快速搭建支持数据库操作的智能建站平台?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Laravel安装步骤详细教程_Laravel环境搭建指南  JavaScript Ajax实现异步通信  北京企业网站设计制作公司,北京铁路集团官方网站?  JavaScript如何操作视频_媒体API怎么控制播放  如何用免费手机建站系统零基础打造专业网站?  如何用景安虚拟主机手机版绑定域名建站?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  文字头像制作网站推荐软件,醒图能自动配文字吗?  iOS正则表达式验证手机号、邮箱、身份证号等  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  高端网站建设与定制开发一站式解决方案 中企动力  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何创建自定义Facades?(详细步骤)  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  如何实现建站之星域名转发设置?  如何彻底删除建站之星生成的Banner?  Laravel Fortify是什么,和Jetstream有什么关系  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  网站制作壁纸教程视频,电脑壁纸网站?  Android okhttputils现在进度显示实例代码  JS碰撞运动实现方法详解  如何在阿里云域名上完成建站全流程?  如何在宝塔面板中修改默认建站目录?  装修招标网站设计制作流程,装修招标流程?