java业务代码发送http请求(Post方式:请求参数为JSON格式;Get方式)

这篇具有很好参考价值的文章主要介绍了java业务代码发送http请求(Post方式:请求参数为JSON格式;Get方式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实际开发中,可能需要发送http请求到第三方服务获取数据,于是就有以下应用:

依赖:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.78</version>
</dependency>
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.5.13</version>
</dependency>

假设我需要在我的业务代码中调用该地址:

url:http://xx.xx:xxxx/user/count

请求方法:post

内容类型:application/json

请求参数:id, username

返回参数:code 响应结果 int类型

                  msg 响应消息 string

                  data 响应数据 string(json字符串)

请求头:U-Token 校对权限的token

java 发送请求代码(封装成一个方法,业务代码中调用该方法即可):

private String sendPost(String url, String id, String username, String token) throws IOException {
        // 用于保存第三方公司定义的json格式的返回结果数据
        String result = "";

        // 封装请求参数并转JSON
        Map<String, String> params = new HashedMap<>();
        params.put("id", id);
        params.put("username", username);
        String jsonMap = JSON.toJSONString(params);

        // 创建httpclient对象
        CloseableHttpClient client = HttpClients.createDefault();

        // 创建post方式请求对象
        HttpPost httpPost = new HttpPost(url);

        // 头部携带的token
        if (token != null && !token.equals("")) {
            // 设置token,其中U-Token 是第三方(接口作者)定义的token名
            httpPost.setHeader("U-Token", token);
        }

        // 设置参数到请求对象中
        StringEntity entity = new StringEntity(jsonMap, "UTF-8");
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        httpPost.setEntity(entity);

        // 执行请求操作,并拿到结果(同步阻塞)
        CloseableHttpResponse response = client.execute(httpPost);

        if (response.getStatusLine().getStatusCode() == 200) {
            // 网络连接正常,将结果赋给result对象,此时result 对象保存的就是第三方公司定义的json格式的返回结果数据
            result = EntityUtils.toString(response.getEntity(), "UTF-8");
        }

        // 释放链接
        response.close();

        return result;
    }

模拟业务代码调用:

 public void test() throws IOException {
        String result = sendPost("http://xx.xx:xxxx/user/count", "1", "张三");

        // 非空判断
        if (!result.equals("")) {
            // 将json字符串转对象,并获取第三方的响应数据
            JSONObject jsonObject = JSON.parseObject(result);
            Integer code = jsonObject.getInteger("code");
            String msg = jsonObject.getString("msg");
            String data = jsonObject.getString("data");
        }
    }

至此,成功完成调用。

拓展:get请求文章来源地址https://www.toymoban.com/news/detail-531495.html

public String sendGet(String url) throws IOException {
        String result = "";

        // 创建httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();

        // 创建get方式请求对象
        HttpGet httpGet = new HttpGet(url);
        httpGet.addHeader("Content-type", "application/json");

        // 通过请求对象获取响应对象
        CloseableHttpResponse response = httpClient.execute(httpGet);

        // 获取结果实体
        // 判断网络连接状态码是否正常(0--200都数正常)
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            result = EntityUtils.toString(response.getEntity(), "utf-8");
        }
        // 释放链接
        response.close();

        return result;
    }

到了这里,关于java业务代码发送http请求(Post方式:请求参数为JSON格式;Get方式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • (一)python发送HTTP 请求的两种方式(get和post )

    注:发送请求(包括请求行、方法类型、头、体) 常见的请求方式有get、post、put、delete            格式:requests.get() (内容: url必填; params选填:url参数字典) # ~ 无参数的get请求 # ~ 有参数的get请求 # ~ 使用params的get请求        知识扩展#  requests.post() post请求分为5种,常用

    2024年02月02日
    浏览(53)
  • Java发送HTTP GET/POST请求

    在这篇文章中,将向你展示四种发送Http的GET/POST的例子,如下: 在Java11的java.net.http.*包中,有一个HttpClient类可以完成HTTP请求。 Java11HttpClientExample.java 本例使用HttpURLConnection(http)和HttpsURLConnection(https) HttpURLConnectionExample.java 使用Apache HttpClient完成HTTP请求的发送需要添加Maven依赖

    2024年02月13日
    浏览(28)
  • java http get post 和 发送json数据请求

    浏览器请求效果       main调用  

    2024年02月16日
    浏览(33)
  • JAVA HTTP中POST请求带参数

    JAVA HTTP中POST请求带参数 通过设置url地址 HashMap为参数 ResponseEntity执行

    2024年02月06日
    浏览(31)
  • C语言通过IXMLHTTPRequest以get或post方式发送http请求获取服务器文本或xml数据

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

    2024年01月25日
    浏览(37)
  • Java 发送Http请求携带中文参数时 请求报400的错误请求

    在 Java 中,URL 中不能直接包含中文字符,因为 URL 规范要求 URL 必须是 ASCII 字符。如果需要在 URL 中传递中文参数,需要对中文参数进行 URL 编码,将其转换为浏览器中的参数形式。可以使用 java.net.URLEncoder 类来进行 URL 编码。

    2024年02月11日
    浏览(30)
  • 【Java】汇总Java中发送HTTP请求的7种方式

    今天在项目中发现一个功能模块是额外调用的外部服务,其采用CloseableHttpClient调用外部url中的接口…… CloseableHttpClient HTTP发送请求处理流程:

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

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

    2024年02月04日
    浏览(39)
  • 使用Go发送HTTP POST请求

    在Go语言中,我们可以使用 net/http 包来发送HTTP POST请求。以下是一个简单的示例,展示了如何使用Go发送HTTP POST请求并获取响应。 go 复制代码 package  main import  ( \\\"bytes\\\"   \\\"fmt\\\"   \\\"io/ioutil\\\"   \\\"net/http\\\"   ) func   main ()  { // 创建一个HTTP客户端 client := http.Client{} // 创建一个POST请求

    2024年01月23日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包