首页 > Web开发 > 详细

HttpClient案例模拟Get请求和Post请求

时间:2020-02-05 17:33:18      阅读:77      评论:0      收藏:0      [点我收藏+]

模拟发送HTTP请求:  

1、采用客户端

  PostMan,RestClient

2、采用代码方式实现模拟HTTP请求(HttpClient)

3、HTTPClient模拟Get请求

  ①目录展示

    技术分享图片

  ②导入HttpClient依赖

    技术分享图片

 

   ③GetClient

package com.zn;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class GetClient {
    public static void main(String[] args) throws IOException {
        getRequest();
    }

    //GET请求
    public static void getRequest() throws IOException {
        //创建一个默认的连接
        CloseableHttpClient client = HttpClients.createDefault();
        //创建一个请求(以百度为例)
        HttpGet httpGet=new HttpGet("https://www.baidu.com/");
        //执行请求获取响应的结果
        CloseableHttpResponse response = client.execute(httpGet);
        //获取响应的状态码
        System.out.println("服务返回的状态码:"+response.getStatusLine().getStatusCode());
        //服务器正常响应
        if (response.getStatusLine().getStatusCode()==200){
            //获取响应结果
            System.out.println(EntityUtils.toString(response.getEntity(),"UTF-8"));
        }
        //关闭结果对象
        response.close();
        //关闭连接
        client.close();
    }
}

  ④效果展示

    技术分享图片

 

 

4、HTTPClient模拟Post请求

  ①目录展示

    技术分享图片

  ②ClientServlet

package com.zn;

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("/HttpClientServlet")
public class ClientServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取数据
        String username = request.getParameter("username");
        System.out.println("接收的数据:"+username);
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write("服务器正确接收数据!");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

  ③PostClient

package com.zn;

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 PostClient {
    public static void main(String[] args) throws IOException {
        postRequest();
    }

    //POST请求
    public static void postRequest() throws IOException {
        //创建一个默认的连接
        CloseableHttpClient client = HttpClients.createDefault();
        //创建一个请求
        HttpPost httpPost=new HttpPost("http://localhost:8080/HttpClientServlet");
        //创建参数队列
        List<NameValuePair> pairList=new ArrayList<>();
        pairList.add(new BasicNameValuePair("username","张三"));
        //创建请求体,封装参数
        UrlEncodedFormEntity entity=new UrlEncodedFormEntity(pairList,"UTF-8");
        //将请求体交给当前请求
        httpPost.setEntity(entity);

        //发送请求,接收结果
        CloseableHttpResponse response = client.execute(httpPost);
        System.out.println("接收到的结果为:"+EntityUtils.toString(response.getEntity(),"UTF-8"));

        //关闭结果对象
        response.close();
        //关闭连接
        client.close();
    }
}

  ④启动ClientServlet去访问HttpClientServlet

    技术分享图片

 

   ⑤启动PostClient

    技术分享图片

 

     技术分享图片

HttpClient案例模拟Get请求和Post请求

原文:https://www.cnblogs.com/Zzzzn/p/12263946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!