前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HttpClient-Get请求、Post请求

HttpClient-Get请求、Post请求

作者头像
wangmcn
发布2022-07-25 17:10:14
2.2K0
发布2022-07-25 17:10:14
举报
文章被收录于专栏:AllTests软件测试

Get请求、Post请求

目录

  • 1、Get请求
    • 1.1、无参数
    • 1.2、有参数(拼接方式)
    • 1.3、有参数(添加参数)
  • 2、Post请求
    • 2.1、无参数
    • 2.2、有参数(StringEntity对象添加参数)
    • 2.3、有参数(Map集合对象添加参数)

1、Get请求

1.1、无参数

1、创建Get类。

没有参数,直接发送请求链接地址。

Get方法,创建HttpGet对象。

脚本代码:

代码语言:javascript
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
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;

/**
 * Get请求(没有参数)
 *
 * @author wangmcn
 *
 */
public class Get {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpGet对象
              HttpGet httpget = new HttpGet("http://localhost:8083/getdemo");
              // 执行Get请求
              CloseableHttpResponse response = httpclient.execute(httpget);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();

       }
      
}

2、运行结果:

1.2、有参数(拼接方式)

1、创建Get2类。

有参数,请求链接为url(http://localhost:8083/getdemo2)

与参数(?username=admin&password=123456)拼接方式。

Get方法,创建HttpGet对象。

脚本代码:

代码语言:javascript
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
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;

/**
 * Get请求(有参数,请求为url与参数拼接方式)
 *
 * @author wangmcn
 *
 */
public class Get2 {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpGet对象
              HttpGet httpget = new HttpGet("http://localhost:8083/getdemo2?username=admin&password=123456");
              // 执行Get请求
              CloseableHttpResponse response = httpclient.execute(httpget);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();
             
       }
      
}

2、运行结果:

1.3、有参数(添加参数)

1、创建Get3类。

创建NameValuePair数组,添加参数。

Get方法,创建HttpGet对象。

脚本代码:

代码语言:javascript
复制
package com.test.demo;

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

import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
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.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

/**
 * Get请求(有参数,添加参数)
 *
 * @author wangmcn
 *
 */
public class Get3 {

       public static void main(String[] args) throws ParseException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
             
              // url
              String url = "http://localhost:8083/getdemo2";
              // 添加参数
              Listparams = new ArrayList();
              params.add(new BasicNameValuePair("username", "admin"));
              params.add(new BasicNameValuePair("password", "123456"));
              // 转换为键值对
              String str = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));

              // 创建HttpGet对象
              HttpGet httpget = new HttpGet(url+"?"+str);
              // 执行Get请求
              CloseableHttpResponse response = httpclient.execute(httpget);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();
      
       }
      
}

2、运行结果:

2、Post请求

2.1、无参数

1、创建Post类。

没有参数,直接发送请求链接地址。

Post方法,创建HttpPost对象。

脚本代码:

代码语言:javascript
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
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.util.EntityUtils;

/**
 * Post请求(没有参数)
 *
 * @author wangmcn
 *
 */
public class Post {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpPost对象
              HttpPost httpPost = new HttpPost("http://localhost:8083/postdemo");
              // 执行Post请求
              CloseableHttpResponse response = httpclient.execute(httpPost);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();
             
       }

}

2、运行结果:

2.2、有参数(StringEntity对象添加参数)

1、创建Post2类。

创建StringEntity对象,设置参数。

Post方法,创建HttpPost对象。

脚本代码:

代码语言:javascript
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

/**
 * Post请求(有参数,创建StringEntity对象,设置参数)
 *
 * @author wangmcn
 *
 */
public class Post2 {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpPost对象
              HttpPost httpPost = new HttpPost("http://localhost:8083/postdemo2");
             
              // 创建StringEntity对象,设置参数
              StringEntity stringEntity = new StringEntity("username=admin&password=123456", "UTF-8");
              stringEntity.setContentType("application/x-www-form-urlencoded");
              httpPost.setEntity(stringEntity);
             
              // 执行Post请求
              CloseableHttpResponse response = httpclient.execute(httpPost);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();

       }

}

2、运行结果:

2.3、有参数(Map集合对象添加参数)

1、创建Post3类。

创建Map集合对象,添加参数。

Post方法,创建HttpPost对象。

脚本代码:

代码语言:javascript
复制
package com.test.demo;

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

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
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;

/**
 * Post请求(有参数,创建集合对象,添加参数)
 *
 * @author wangmcn
 *
 */
public class Post3 {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpPost对象
              HttpPost httpPost = new HttpPost("http://localhost:8083/postdemo2");
             
              // 创建集合对象,添加参数
              Mapmaps = new HashMap();
              maps.put("username", "admin");
              maps.put("password", "123456");

              // 创建参数队列
              ListnameValuePairs = new ArrayList();
              for (String key : maps.keySet()) {
                     nameValuePairs.add(new BasicNameValuePair(key, maps.get(key)));
              }
              httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));

              // 执行Post请求
              CloseableHttpResponse response = httpclient.execute(httpPost);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();

       }

}

2、运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1.1、无参数
  • 1.2、有参数(拼接方式)
  • 1.3、有参数(添加参数)
  • 2.1、无参数
  • 2.2、有参数(StringEntity对象添加参数)
  • 2.3、有参数(Map集合对象添加参数)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档