Java代码发送post请求实现方式

 更新时间:2026年05月09日 10:03:04   作者:胡大可呀  
本文介绍了使用Java发送POST请求的方法,包括引用工具类、设置访问地址、请求头和json请求体,最后使用工具类发送请求并返回结果

使用Java代码访问对应连接,并发送json格式数据,post请求。

1、首先引用工具类HttpClientUtil

/*
 * 利用HttpClient进行post请求的工具类
 */
public class HttpClientUtil {
    public String doPost(String url, Map<String, String> headerMap, String jsonText, String charset) {
        HttpClient httpClient = null;
        HttpPost httpPost = null;
        String result = null;
        InputStream in = null;
        try {
            httpClient = SSLClientFactory.createSSLClientDefault();
            httpPost = new HttpPost(url);
            // 设置参数
            Iterator<Entry<String, String>> iterator = headerMap.entrySet().iterator();
            Entry<String, String> elem = null;
            while (iterator.hasNext()) {
                elem = iterator.next();
                httpPost.addHeader(elem.getKey(), elem.getValue());
            }
            if (StringUtils.isNotBlank(jsonText)) {
                byte[] bytes = jsonText.getBytes(HTTP.UTF_8);
                ByteArrayEntity se = new ByteArrayEntity(bytes);
                httpPost.setEntity(se);
            }
            HttpResponse response = httpClient.execute(httpPost);
            if (response != null) {
                HttpEntity resEntity = response.getEntity();
                if (resEntity != null) {
                    in=resEntity.getContent();
                    result = EntityUtils.toString(resEntity, charset);
                }
            }
        } catch (Exception ex) {
        }
        finally
        {
            if (in != null){
                try
                {
                    in.close ();
                }
                catch (IOException e)
                {
                    e.printStackTrace ();
                }
            }
        }
        return result;
    }
}

2、获取 访问地址、请求头、json格式的请求体

        //获取接口地址
        String url="http://external.rmcp-zsh.bosafe.com/api/v1/ztexternal/user/change";
        //获取请求头
        Map<String, String> headerMap = new HashMap<String, String>();
        headerMap.put("appId", appId);
        headerMap.put("randomNumber",s);
        headerMap.put("timestamp", strTime);
        headerMap.put("signature", w );
        headerMap.put("Content-Type", "application/json");
        //获取请求体
        JSONObject obj = new JSONObject();
        obj.put("appId", appId);
        //将待同步对象集合转换为json数据
        JSONArray userList = JSONUtil.parseArray(split);
        //设置请求体参数
        obj.put("userList",userList);

3、利用工具类HttpClientUtil 访问 并返回结果

HttpClientUtil httpClientUtil = new HttpClientUtil();
//发送post请求
String results = httpClientUtil.doPost(url, headerMap, obj.toJSONString(), Constants.UTF8);
//返回结果
JSONObject resultJson = JSONObject.parseObject(results);
String status =resultJson.getString("status");

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringMVC拦截器详解

    SpringMVC拦截器详解

    本篇文章主要介绍了SpringMVC拦截器配置及使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-07-07
  • Java实现n位数字的全排列

    Java实现n位数字的全排列

    今天小编就为大家分享一篇关于Java实现n位数字的全排列,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Java中Velocity快速对变量中的引号特殊字符进行转义

    Java中Velocity快速对变量中的引号特殊字符进行转义

    Velocity是一个基于Java的模板引擎,与Freemarker类似,这篇文章主要介绍了Java中Velocity如何对变量中的引号特殊字符进行转义,主要记录一下在使用中碰到的要对引号特殊字符进行转义的问题,需要的朋友可以参考下
    2023-07-07
  • 聊一聊Java中的Steam流

    聊一聊Java中的Steam流

    当我们需要处理的数据量很大的时候,为了提高性能,就需要使用到并行处理,这样的处理方式是很复杂的,流可以帮助开发者节约宝贵的时间,让以上的事情变得轻松,本文就和大家聊一聊Java中的Steam流,感兴趣的同学跟着小编一起来看看吧
    2023-07-07
  • Java并发之CAS原理详解

    Java并发之CAS原理详解

    这篇文章主要为大家详细介绍了Java的CAS原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • JAVA基于Redis实现计数器限流的使用示例

    JAVA基于Redis实现计数器限流的使用示例

    计数器法是限流算法里最简单也是最容易实现的一种算法,本文主要介绍了JAVA基于Redis实现计数器限流的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Java实现获取控制台输出结果转换为变量的详细操作

    Java实现获取控制台输出结果转换为变量的详细操作

    在Java编程中,有时需将控制台的输出捕获为字符串,以便于后续的处理或测试,这种需求在日志记录、单元测试或调试时尤为常见,下面,将通过详细步骤来介绍如何使用ByteArrayOutputStream和PrintStream来实现这一功能,需要的朋友可以参考下
    2024-06-06
  • SpringAI Agent开发秘籍如何让javaer也可以用上Agent Skills

    SpringAI Agent开发秘籍如何让javaer也可以用上Agent Skills

    文章介绍了如何使用SpringA和Skills构建一个代码评审应用,通过实战示例展示如何利用SpringAI和大模型实现零配置的代码评审功能,感兴趣的朋友跟随小编一起看看吧
    2026-04-04
  • spring boot实战之本地jar包引用示例

    spring boot实战之本地jar包引用示例

    本篇文章主要介绍了spring boot实战之本地jar包引用示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Mybatis基于TypeHandler实现敏感数据加密

    Mybatis基于TypeHandler实现敏感数据加密

    业务场景中经常会遇到诸如用户手机号,身份证号,银行卡号,邮箱,地址,密码等等信息,属于敏感信息,本文就来介绍一下Mybatis基于TypeHandler实现敏感数据加密,感兴趣的可以了解一下
    2023-10-10

最新评论