发送http请求

本文演示了如何在Java中使用ApacheHttpClient库发送HTTPPOST和GET请求,包括设置Maven依赖、构建JSON请求体以及处理响应。同时提到了阿里巴巴的Fastjson用于JSON序列化。
摘要由CSDN通过智能技术生成

很多小伙伴说不会发送http请求,很好,今天它来了

我们这里直接示范 阿帕奇 的包,http请求

简单易上手,直接安排

以下是它的maven依赖

<!--        发送http的-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>

有小伙伴说,我们要是带json,不麻烦吗,我们直接用ali的,好用,简单

<!--alibaba搞出来的 java对象序列化为json串的工具包-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.54</version>
        </dependency>

准备工作安排好了 ,快快快,正题

强调,好用,简单,易上手,Copy直接用

POST

public ResponseEntity<Object> postTset(){

        //body参数,我们这里已json为例
        //拼接要请求的参数
        JSONObject requestObject = new JSONObject();
        //转账的金额
        requestObject.put("amount","100");
        //货币的类型格式
        requestObject.put("currency","RMB");
        //订单号
        requestObject.put("externalId","T202310000");
        //json里面嵌套一个json的格式
        JSONObject payee = new JSONObject();
        //api文档给的
        payee.put("partyIdType","json");
        //充值账号
        payee.put("partyId","123456");
        requestObject.put("payee",payee);


        HttpClient httpclient = HttpClients.createDefault();

        //第三方接口的路径
        try {
            URIBuilder builder = new URIBuilder("https://xxxxxxxxxxx/disbursement/v1_0/xxx");
            URI uri = builder.build();
            HttpPost request = new HttpPost(uri);
            //第三方需要的请求头参数
            request.setHeader("Authorization","Bearer" + "tokenAc");
            request.setHeader("Content-Type", "application/json");

            // Request body   第三方需要的求情体
            /*
                body:请求的身体
                StringEntity reqEntity = new StringEntity({body});
             */

            StringEntity reqEntity = new StringEntity(requestObject.toString());
            request.setEntity(reqEntity);
            //一切准备好了,发送请求
            HttpResponse response = httpclient.execute(request);
            //解析数据
            HttpEntity entity = response.getEntity();
            /*
            获取对方传过来的值,我这里对方传过来的是json哦,我们要去
            一个一个拿(getString拿他的属性名)
             */
            String entityString = EntityUtils.toString(entity);
            JSONObject json = JSONObject.parseObject(entityString);
            String sa_id = json.getString("sa_id");
            String sa_name = json.getString("sa_name");
            Integer sa_code = json.getInteger("sa_code");
            if (sa_code == 200 || sa_code != null ){
                System.out.println("请求成功");
            }else {
                System.out.println("请求时失败成功");
            }
            return ResponseEntity.ok(entityString);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return ResponseEntity.ok("失败了");
    }

GET

public ResponseEntity<Object> getTset(){

        HttpClient httpclient = HttpClients.createDefault();

        //第三方接口的路径
        try {
            URIBuilder builder = new URIBuilder("https://xxxxxxxxxxx/disbursement/v1_0/{param}/}");
            URI uri = builder.build();
            HttpGet request = new HttpGet(uri);
            //第三方需要的请求头参数
            request.setHeader("Authorization","Bearer" + "tokenAc");
            request.setHeader("Content-Type", "application/json");


/*            // Request body   第三方需要的求情体
            /*
                咱们的GET是没有身体的哦,参数在url里面哦
                body:请求的身体
                StringEntity reqEntity = new StringEntity({body});
             */
//            StringEntity reqEntity = new StringEntity("");
//            request.setEntity(reqEntity);         */


            //一切准备好了,发送请求
            HttpResponse response = httpclient.execute(request);
            //解析数据
            HttpEntity entity = response.getEntity();
            /*
            获取对方传过来的值,我这里对方传过来的是json哦,我们要去一个一个拿(getString拿他的属性名)
             */
            String entityString = EntityUtils.toString(entity);
            JSONObject json = JSONObject.parseObject(entityString);
            String sa_id = json.getString("sa_id");
            String sa_name = json.getString("sa_name");
            Integer sa_code = json.getInteger("sa_code");
            if (sa_code == 200 || sa_code != null ){
                System.out.println("请求成功");
            }else {
                System.out.println("请求时失败成功");
            }
            return ResponseEntity.ok(entityString);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return ResponseEntity.ok("失败了");
    }

要是你们要用工具类的,那个要用io流传给对面,我们传给我们的也是io流哦,我这里介绍简单的

只要坚持就会成功,大家好,我是小北

欢迎指正,共同进步

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium是一个用于自动化测试的工具,主要用于模拟用户在浏览器上的操作。它虽然可以发送HTTP请求,但并不是其主要功能,通常不推荐直接使用Selenium来发送HTTP请求。 Selenium主要用于模拟用户在浏览器上的行为,如点击、输入等操作。它可以打开一个浏览器窗口,加载指定的URL,并执行一系列操作,检查页面元素的状态和结果。这对于Web应用程序的自动化测试非常有用。 如果你只是想发送HTTP请求,可以选择其他更适合的工具,如Python中的requests库。requests库提供了简单而强大的API,可以方便地发送各种类型的HTTP请求,并获取响应结果。它支持常见的HTTP方法,如GET、POST等,也支持设置请求头、传递参数等功能,非常适合发送HTTP请求。 使用requests库发送HTTP请求的示例代码如下: ``` import requests url = "http://example.com" response = requests.get(url) print(response.status_code) print(response.text) ``` 上述代码首先使用requests库引入了需要的模块,然后定义了要发送请求的URL。接着,使用`requests.get()`方法发送了一个GET请求,并将结果保存在response对象中。最后,我们可以通过`response.status_code`获取响应状态码,通过`response.text`获取响应内容。 总结来说,Selenium虽然可以发送HTTP请求,但并不是其主要功能所在。如果你只是想发送HTTP请求,建议使用更合适的工具如requests库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值