当前位置:首页 > 服务端 > HTTP请求(HttpClient和PostMan)

HTTP请求(HttpClient和PostMan)

2022年11月06日 13:59:17服务端10

在没有页面的情况下来获取接口返回的数据(一般都是为JSON),我们可以通过一些工具模拟HTTP请求

服务端模拟HTTP请求

通过JAVA代码进行HTTP请求的发送

1.准备依赖

    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.6</version>
    </dependency>

2.创建post和get方式请求的方法

package com.ty.http;


import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MyHttpClient {
    private static void myPost() throws IOException {
        //建立连接请求
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //创建post请求
        HttpPost httpPost = new HttpPost("http://eureka7002.com:6061/myServlet");
        //创建参数队列
        List<NameValuePair> nameValuePairList=new ArrayList<>();
        //准备请求参数队列
        nameValuePairList.add(new BasicNameValuePair("userName","天雁"));
        //
        UrlEncodedFormEntity urlEncodedFormEntity=new UrlEncodedFormEntity(nameValuePairList,"UTF-8");
        //讲实体封装到请求当中
        httpPost.setEntity(urlEncodedFormEntity);
        //发送请求
        CloseableHttpResponse response = httpClient.execute(httpPost);
        HttpEntity entity = response.getEntity();
        if (entity!=null){
            System.out.println("接收到的响应信息:--------"+EntityUtils.toString(entity,"UTF-8"));
        }
        //资源释放
        response.close();
        httpClient.close();

    }

    private static void myGet() throws IOException {

        //建立连接请求
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //创建get请求
        HttpGet get=new HttpGet("https://www.baidu.com/");
        CloseableHttpResponse response = httpClient.execute(get);
        int statusCode = response.getStatusLine().getStatusCode();
        //响应成功在操作
        if (statusCode==200) {
            //获取响应实体
            HttpEntity entity = response.getEntity();

            //打印响应内容长度
            System.out.println("响应文本长度:"+entity.getContentLength());
            //打印响应内容
            System.out.println("响应内容如下:\n"+EntityUtils.toString(entity,"UTF-8"));
        }
        System.out.println("--------------------------响应内容打印完毕");
        //释放资源
        response.close();
        httpClient.close();
    }

    public static void main(String[] args) {
        try {
          //  myGet();
            myPost();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4.get测试百度返回结果

HTTP请求(HttpClient和PostMan) _ JavaClub全栈架构师技术笔记

 

 5.post测试本机的另一个服务

5.1给项目准备依赖
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.58</version>
    </dependency>
5.2创建一个Servlet,接收一个参数,返回json串
package com.ty.servlet;

import com.alibaba.fastjson.JSON;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/myServlet")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doPost(req,resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String userName = req.getParameter("userName");
        resp.setHeader("Content-type", "text/html;charset=UTF-8");
        System.out.println("接受到的数据:"+userName);
        String json="成功响应";
        resp.getWriter().write(JSON.toJSONString(json));
    }
}
5.3启动服务,发送post请求,结果如下

HTTP请求(HttpClient和PostMan) _ JavaClub全栈架构师技术笔记

 

 HTTP请求(HttpClient和PostMan) _ JavaClub全栈架构师技术笔记

 

 

客户端工具模拟HTTP请求

PostMan发送get请求百度

HTTP请求(HttpClient和PostMan) _ JavaClub全栈架构师技术笔记

 

 发送post请求

HTTP请求(HttpClient和PostMan) _ JavaClub全栈架构师技术笔记

 

作者:天戈
来源链接:https://www.cnblogs.com/yjc1605961523/p/12263729.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68151.html

标签: HTTP
分享给朋友:

“HTTP请求(HttpClient和PostMan)” 的相关文章

git clone使用https

git clone使用https

git默认开启SSL验证, 如果直接使用git clone https://xxx, 会返回SSL certificate problem: unable to get local issuer certificate, 需要把SSL验证关闭,...

Maven的HTTP代理设置

Maven的HTTP代理设置

http://blog.sina.com.cn/s/blog_4f925fc30102ed3y.html   第一、检测本地网络是否不能直接访问Maven的远程仓库,命令为ping repo1....

RabbitMQ 启用 rabbitmq-auth-backend-http鉴权

查看运行中的容器 # docker ps 进入容器 # docker exec -it <RabbitMq容器ID> /bin/bash 启用插件 输入以下命令查看所有插件: # sudo rabbitm...

HTTP协议-Cookie和Session详解

HTTP协议-Cookie和Session详解

前言: 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的跟踪技术就是Cookie和Session。 Cookie通过在客户端记录信息确定用户身份,Session通过在服务器记录确定用户身份。 本章将系统的讲述Cookie和Sessio...

HTTP Session、Cookie机制详解

一、什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息。  这 里用一个形象的比喻来解释session的工作方式。假设We...

【jvm】如何为JVM设置HTTP代理

【jvm】如何为JVM设置HTTP代理

How do I set the proxy to be used by the JVM?   -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1080 -Dhttps.proxyHost=127.0.0....

linux 使用shell发送http请求

linux 使用shell发送http请求

 一、curl 1. get请求 curl命令默认下就是使用get方式发送http请求。 curl www.baidu.com 2. post请求  curl -X POST www.baidu.com  使用-d...

C# http请求带请求头部分

C# http请求带请求头部分   1、JS设置http请求带请求头部分 <script type="text/javascript"> fun...

Java处理HTTP请求超时问题

分享知识 传递快乐   在发送POST或GET请求时,返回超时异常处理办法: 捕获 SocketTimeoutException | ConnectTimeoutException | ConnectionPoolTimeout 异常 以上三种异...

java中http请求带cookie

String urlPath = "你的请求链接"; String cookie = "要发送的cookie"; URL url = new URL(urlPath); URLConnection conn = url.openConnection();...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。