歌曲项目总结

Service

Serrvice包含方法

  1. 增:insert(对象)

  1. 删:remove(对象)

  1. 改:updateFirst(query,update,class)

Query query = new Query(Criteria.where("id").is(song.getId()));
Update update = new Update();
update.set("name",song.getName());
update.set("gmtModified", LocalDateTime.now());
UpdateResult result = mongoTemplate.updateFirst(query, update, Song.class);
  1. 查(根据主键):findById(主键,类名)

  1. 查全部:findAll(类名)

  1. 根据分页查询:

  • 全部数据

  • 分页器

  • 总数

 Criteria criteria = new Criteria();
        List<Criteria> subCris = new ArrayList<>();

        if(StringUtils.hasText(songQueryParam.getName())){
            subCris.add(Criteria.where("name").is(songQueryParam.getName()));
        }

        if(StringUtils.hasText(songQueryParam.getLyrics())){
            subCris.add(Criteria.where("lyrics").is(songQueryParam.getLyrics()));
        }

        if(StringUtils.hasText(songQueryParam.getId())){
            subCris.add(Criteria.where("id").is(songQueryParam.getId()));
        }

        if(!subCris.isEmpty()){
            criteria.andOperator(subCris.toArray(new Criteria[]{}));
        }

        Query query = new Query(criteria);
        long count = mongoTemplate.count(query,Song.class);
        Pageable pageable = PageRequest.of(songQueryParam.getPageNum()-1,songQueryParam.getPageSize());
        query.with(pageable);
        List<Song> songs = mongoTemplate.find(query, Song.class);
        Page<Song> page = PageableExecutionUtils.getPage(songs, pageable, new LongSupplier() {
            @Override
            public long getAsLong() {
                return count;
            }
        });
        return page;

测试Service步骤

爬取流程

构建必要的http,header

将referer、host、cookie等信息封装进Map中等待后来调用

public Map<String,String> buildHeader(String referer,String host,String cookie){
    Map<String,String> header = new HashMap<>();
    if(!referer.isEmpty()){
        header.put("referer",referer);
    }
    if(!host.isEmpty()){
        header.put("host",host);
    }
    if(!cookie.isEmpty()){
        header.put("cookie",cookie);
    }
    return header;
}

发送请求,读取页面内容

public String getContent(String url,Map<String,String> headers){
    //  okHttpClients实例
    OkHttpClient okHttpClient = new OkHttpClient();
    //  定义一个request
    Request request = new Request.Builder()
            .url(url)
            .addHeader("Referer",headers.get("referer"))
            .addHeader("Host",headers.get("host"))
            .addHeader("Cookie",headers.get("cookie"))
            .build();
    //  返回结果字符串
    String result = null;
    try {
        //  执行请求
        Response response = okHttpClient.newCall(request).execute();
        result = response.body().string();

    } catch (IOException e) {
        e.printStackTrace();
    }
    return result;
}
记得自动注入HttpUtil类

调用方法

Map<String, String> header = httpUtil.buildHeader(COL_REFERER, HOST, COOKIE);
//  获取信息
String content = httpUtil.getContent(COL_URL, header);

图片防盗链

JavaScript发起请求

fetch(
  'https://www.xxx.com/xxx/xxx/xxx'
)
  .then(function(response) {
    return response.json();
  })
  .then(function(myJson) {
    console.log(myJson);
  });

使用获取到的json

li.innerHTML = `
<div class="aaa">${myJson.name}</div>
`;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值