在java中发送post请求

这篇具有很好参考价值的文章主要介绍了在java中发送post请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建请求工具类:

使用第三方库,如Apache HttpClient:Apache HttpClient是一个功能强大的HTTP客户端库,提供了更便捷的方式发送HTTP请求。

public class HttpRequest {
    //    发送post请求
    public JSONObject post(String url, Map data) {

        HttpPost httpPost = new HttpPost(url);
        CloseableHttpClient client = HttpClients.createDefault();

        //请求参数拼接JOSN字符串
        String data_s = mapToString(data);
        System.out.println(data_s);
        StringEntity entity = new StringEntity(data_s, "UTF-8");

        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/x-www-form-urlencoded");
        httpPost.setEntity(entity);
        //定义接收数据
        JSONObject result = new JSONObject();
        try {
            HttpResponse response = client.execute(httpPost);
            if (response.getStatusLine().getStatusCode() == 200) {
                result = JSON.parseObject(EntityUtils.toString(response.getEntity(), "UTF-8"));
            }
        } catch (
                IOException e) {
            e.printStackTrace();
            result.put("error", "连接错误!");
        }
        //关闭连接
        try {
            client.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return result;
    }
}

构建请求体

为了更好的构建请求体这里我写了一个用于将Map<String, String>转换为字符串的方法。
它遍历Map中的每个键值对,将键和值以key=value的形式拼接,并用&分隔每个键值对。最后,如果字符串的长度大于0,则删除最后一个多余的&符号,然后返回拼接好的字符串。文章来源地址https://www.toymoban.com/news/detail-861047.html

 public static String mapToString(Map<String, String> map) {
        StringBuilder stringBuilder = new StringBuilder();

        for (Map.Entry<String, String> entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();

            stringBuilder.append(key).append("=").append(value).append("&");
        }

        // 删除最后一个"&"
        if (stringBuilder.length() > 0) {
            stringBuilder.setLength(stringBuilder.length() - 1);
        }

        return stringBuilder.toString();
    }

HttpRequest 工具类的使用示例:

public Result rtmpaddress(){
        String url = "******";
        //定义发送数据
        Map<String, String> map_rtmp = new HashMap<>();
        map_rtmp.put("accessToken", "******");
        map_rtmp.put("deviceSerial", "******");
        map_rtmp.put("channelNo", "1");
        map_rtmp.put("protocol", "3");

        HttpRequest httprequest = new HttpRequest();
        JSONObject result_rtmp = httprequest.post(url,map_rtmp);
        String url_rtmp = (String) result_rtmp.getJSONObject("data").get("url");
        if (result_rtmp.get("code").equals("200")) {
            return Result.ok().data("url",url_rtmp).data("message",result_rtmp.get("msg"));
        } else {
            return Result.error().data("message",result_rtmp.get("msg"));
        }
    }

到了这里,关于在java中发送post请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言通过IXMLHTTPRequest以get或post方式发送http请求获取服务器文本或xml数据

    做过网页设计的人应该都知道ajax。 Ajax即Asynchronous Javascript And XML(异步的JavaScript和XML)。使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。 在IE浏览器中,Ajax技术就是

    2024年01月25日
    浏览(62)
  • 云函数发送post请求

    1、新建云函数 2、在云函数目录,右键-外部终端 3、npm install got@10 注意要控制版本 4、云函数上传后,在云开发配置-高级配置,修改超时时间到更长 5、请求内容 const cloud = require(\\\'wx-server-sdk\\\') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 const got = require(\\\'got\\\') // 云函数

    2023年04月11日
    浏览(39)
  • httpclient发送Get请求和Post请求

    1). 创建HttpClient对象,可以使用 HttpClients.createDefault() ; 2). 如果是无参数的GET请求,则直接使用构造方法 HttpGet(String url )创建HttpGet对象即可; 3)如果是带参数GET请求,则可以先使用 URIBuilder (String url)创建对象,再调用 addParameter (Stringparam, String value)`, 或setParameter(String param

    2024年02月06日
    浏览(63)
  • 在postman中使用raw纯文本格式发送POST请求成功而在python爬虫中发送POST请求失败

    在postman中是成功的 我查了很多资料,说raw是纯文本格式提交的,我又去看postman中的headers,查看content-Type中指定了格式 修改了爬虫中的headers 或者把data写出字典格式,再用json.dumps(data)转换一下

    2024年02月12日
    浏览(57)
  • 使用hutool发送POST请求

    之前使用Java程序发送请求都是使用的HttpURLConnection,不太方便,可以使用hutool封装好的方法。 返回结果包括响应头和响应体两部分,其中响应体是后端通过@ResponseBody返回的数据;响应头包含一些其他信息,比如cookie。 hutool参考文档

    2024年02月11日
    浏览(58)
  • 使用HttpURLConnection发送POST请求并携带请求参数

    这里的param是请求参数,需要将其转换为字节数组后写入输出流。 这里的response是响应数据,需要将其读取为字符串后使用。 完整的示例代码如下所示: 需要注意的是,以上示例代码中的请求参数是以字符串形式传递的,如果需要传递复杂的请求参数,可以考虑使用JSON等格

    2024年02月04日
    浏览(57)
  • chrome 模拟发送POST请求和GET请求

    F12打开Console输入以下代码:

    2024年02月11日
    浏览(53)
  • 使用Postman发送GET请求和POST请求

    Postman是一款流行的API测试和开发工具,它提供了一个易于使用的界面,用于发送HTTP请求并与REST、SOAP和其他Web服务进行交互。以下是对Postman的简单介绍: 发送HTTP请求:Postman允许您以简单直观的方式发送各种类型的HTTP请求(GET、POST、PUT、DELETE等)到指定的URL。您可以设置请

    2024年02月05日
    浏览(63)
  • python 发送和接收post请求

    bottle是python的web框架,只需要引用一个 .py 文件即可,点击去下载页

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包