首页 > 编程语言 >4.HttpClient,微信小程序,SpringCache

4.HttpClient,微信小程序,SpringCache

时间:2024-06-01 11:44:40浏览次数:29  
标签:缓存 SpringCache 请求 对象 微信 参数 response HttpClient

HttpClient,微信小程序,Spring Cache

HttpClient:

简介:

  • HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议;

导入:

  • 在maven项目中的pom.xml文件直接导入
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.5.13</version>
</dependency>

核心API:

  • HttpClient:接口,用于发送http请求;
  • HttpClients:相当于是构建器,用于创建一个HttpClient对象;
  • CloseableHttpClient:是HttpClient的实现类,实现了HttpClient接口;
  • HttpGet:代表get请求;
  • HttpPost:代表post请求

发送请求步骤:

GET请求:
  • 创建HttpClient对象;

    • 使用HttpClients类中的createDefault()静态方法创建HttpClient对象;

    • CloseableHttpClient httpClient = HttpClients.createDefault();
      
  • 创建请求对象;

    • new一个HttpGet对象,参数为请求地址;可以是字符串也可以是URI类;

    • HttpGet httpGet = new HttpGet("http://localhost:8080/user/status");
      
  • 发送请求,接收响应结果;

    • 使用HttpClient对象中的execute(参数)方法,参数为HttpGet请求对象;

    • 返回值是服务端响应结果;

    • CloseableHttpResponse response = httpClient.execute(httpGet);
      
  • 获取服务端返回的状态码;

    • 使用response对象中的getStatusLine()方法获取,获取HTTP 响应的状态码、原因短语和协议版本等信息;

    • 再使用getStatusCode()方法获取HTTP响应的状态码;

    • int statusCode = response.getStatusLine().getStatusCode();
      System.out.println("服务端返回的状态码为:"+statusCode);
      
  • 获取服务端返回的数据;

    • 使用response对象中的getEntity()方法获取封装服务端返回数据的HttpEntity对象;

    • 使用EntityUtils工具类中的toString(参数)静态方法,参数为HttpEntity对象;返回值是json字符串

    • HttpEntity entity = response.getEntity();
      String body = EntityUtils.toString(entity);
      System.out.println("服务端返回的数据为:"+body);
      
  • 关闭资源;

    • 使用close()方法,关闭response对象和HttpClient对象;

    • response.close();
      httpClient.close();
      
Post请求:
  • 与Get请求差不多;将new一个HttpGet对象,换为HttpPost对象;
  • HttpPost对象中的setEntity(参数)方法,来添加json类型参数,参数类型为Entity类型;
    • Entity属于接口,使用实现类StringEntity
  • 创建JSONObject对象,使用put(键,值)方法,来设置传递的参数;
  • 创建一个StringEntity对象,参数为json字符串;如StringEntity entity = new StringEntity(jsonObject.toString())
    • setContentEncoding(参数):指定请求编码方式,参数为字符串,如utf-8
    • setContentType(参数):设置请求数据格式,参数为字符串,如application/json

URIBuilder:

  • 用于创建和修改URI;
  • 构造方法:有参构造,在创建对象是传入请求的地址;
  • 常用方法:
    • addParameter(键,值):为URI地址添加请求参数;
    • build():生成URI对象;
  • URI对象和URL差不多用法;

微信小程序:

常用API:

wx.getUserInfo:
  • 简介:用于获取用户的公开信息,包括昵称、头像、性别等。这个API需要用户授权才能调用,并且只能获取到用户的公开信息,不能获取到用户的敏感信息(如手机号、身份证号等);

  • 使用:

    wx.getUserInfo({
    	// 请求成功方法和返回的数据
        success: function(res) {
        	console.log(res.userInfo); // 打印用户信息
        }
    });
    
wx.login:
  • 简介:用于获取登录凭证(code)。这个凭证可以用于发送给开发者服务器,以获得用户的登录凭证(session_key)和用户信息;

  • 使用:

    wx.login({
    	// 请求成功的方法
    	success: function(res) {
    		//登录凭证
    		console.log(res.code)
    	}
    })
    
wx.request:
  • 简介:微信小程序中用于发起网络请求的API。它可以用来发送HTTP请求,获取服务器返回的数据或向服务器发送数据;

  • 使用:

    wx.request({
        url: 'https://example.com/api', // 请求的URL地址
        data: { key1: 'value1', key2: 'value2' }, // 要发送给服务器的数据(可选)
        header: { 'content-type': 'application/json' }, // 设置请求头(可选)
        method: 'GET', // 请求方法,可以是GET、POST等(可选,默认为GET)
        success: function(res) {
        	// 请求成功的回调函数,可以在这里处理服务器返回的数据
        	console.log(res.data);
        },
        fail: function(err) {
        	// 请求失败的回调函数,可以在这里处理错误信息
        	console.error(err);
        }
    });
    

Spring Cache

简介:

  • Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能;
  • Spring Cache提供了一层抽象,底层可以切换不同的缓存实现,例如:
    • EHCache
    • Caffeine
    • Redis

实现:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-cache</artifactId>
	<version>2.7.3</version>
</dependency>

常用注解:

注解 说明
@EnableCaching 开启缓存注解功能,通常加在启动类上
@Cacheable 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
@CachePut 将方法的返回值放到缓存中
@CacheEvict 将一条或多条数据从缓存中删除

注解属性:

共同属性
  • cacheNames:属性指定了缓存的名称,它是必须提供的;例:@CachePut(cacheNames = “userCache”)
  • key:key属性是用来指定缓存条目的键,这个键是唯一标识一个缓存条目的。该属性支持使用SpEL表达式;
    • 例:@CachePut(cacheNames = “userCache”,key = "#user.id")
    • #号是SpEL表达式,后面跟随的是一个对象,id是user对象的属性;
    • 最后生成的key为useCache::user.id的值;
@CacheEvict属性:
  • allEntries:当属性为true时,删除指定缓存的所有条目;例:@CacheEvict(cacheNames = "userCache,allEntries = true")

标签:缓存,SpringCache,请求,对象,微信,参数,response,HttpClient
From: https://www.cnblogs.com/chj020415/p/18225759

相关文章