获取bing壁纸

接口及实现

简单的demo,将所有的方法都复制到一个Controller里面了。

/img/url (通过流的方式,可以直接读取到图片)

/img/info (返回图片的信息以json的形式,采用异步非阻塞的方式执行代码)

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;/*** @author zhoujx*/
@RestController
@RequestMapping("/img")
public class ImgController {@RequestMapping("/url")public void getImgUrl(HttpServletResponse response) throws IOException{JSONObject object = getUrl();String url = "https://cn.bing.com"   object.getJSONArray("images").getJSONObject(0).getString("url");Objects.requireNonNull(doGetEntity(url)).writeTo(response.getOutputStream());response.setContentType("image/jpg");}@GetMapping("/info")public Mono<JSONObject> getImgInfo(){return Mono.create(res -> {JSONObject object = getUrl();res.success(object);});}private JSONObject getUrl(){String json = doGet("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN");return JSON.parseObject(json);}public static String doGet(String url) {return getString(url);}private static String getString(String url) {String result = "";try {HttpGet httpGet = new HttpGet(url);HttpClient client = HttpClients.createDefault();HttpResponse response = client.execute(httpGet);HttpEntity entity = response.getEntity();result = EntityUtils.toString(entity);} catch (Exception e) {e.printStackTrace();}return result;}public static HttpEntity doGetEntity(String url) {return getHttpEntity(url);}private static HttpEntity getHttpEntity(String url) {try {HttpGet httpGet = new HttpGet(url);HttpClient client = HttpClients.createDefault();HttpResponse response = client.execute(httpGet);response.getEntity().getContent();return response.getEntity();} catch (Exception e) {e.printStackTrace();}return null;}
}

接口说明

bing壁纸接口

https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN

参数名称 值含义
format (非必需) 返回数据格式,不存在返回xml格式js (一般使用这个,返回json格式)xml(返回xml格式)
idx (非必需) 请求图片截止天数0 今天-1 截止中明天 (预准备的)1 截止至昨天,类推(目前最多获取到7天前的图片)
n (必需) 1-8 返回请求数量,目前最多一次获取8张
mkt (非必需) 地区:zh-CN等
返回的信息

blog.koreyoshi.work

bing壁纸获取(Java)相关推荐

  1. 关于Bing壁纸获取无法打开图片

    获取Bing壁纸时能正确获得url,但是保存的文件却无法打开,查找后发现有反爬策略,加入如下headers headers = {'Host': 'bing.ioliu.cn','Pragma': ' ...

  2. java获取Bing壁纸

    首先声明这是看了大佬得得博客封装的一个获取bing壁纸的方法 目的 平时觉得bing的壁纸挺好看的的就想获取它的把一些图片保存起来,所以就找了一下相关信息,于是就有了这篇博客. 环境准备 这里我使用的 ...

  3. 使用Python获取bing壁纸接口

    原文地址–>点击进入阅读 注意:该接口和代码仅供学习使用!请勿将传回的壁纸用于非法用途!请尊重版权!树立版权意识! 由于读者自身行为导致的侵权,作者概不负责! Bing壁纸 Bing的壁纸是每天 ...

  4. 微软 bing 壁纸 每日一图 bing api

    作者提供了一个在线的壁纸服务地址如下: http://47.111.254.61:8000/bingWpget请求或者粘贴到浏览器就可以获取最新的bing壁纸.谢谢. 如果地址不能使用了,请联系qq ...

  5. linux自动刷新桌面,Ubuntu下实现用Python开机自动更新壁纸为bing壁纸

    因为用的Windows Phone的手机,里面有一个手机锁屏每天自动更新为bing的壁纸,用着挺好的,遂想在Ubuntu下实现这个功能,断断续续折腾了一两个星期,惭愧.不过好在最终还是将所有的功能实现 ...

  6. Python爬虫——爬取Bing壁纸

    个人作为获取壁纸的小脚本 所以添加了random模块,壁纸以日期命名,每天随机领取一张新壁纸 使用requests库爬取,re正则提取数据 使用PIL库 将下载的壁纸自动展示 # -*- coding ...

  7. python主题壁纸下载_Python 下载Bing壁纸

    这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭 ...

  8. python主题壁纸下载_Python 下载Bing壁纸的示例

    这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭 ...

  9. 双击下载当日bing壁纸

    ... 语言 go 直接贴代码 语言 go 其实python 更加方便,但是不好打包,,不说,go就是香 直接贴代码 原本以为,还要一些其他的东西,但是发现直接赢刚就是完事,,代码简单,这里不再赘述, ...

  10. 获取Java系统相关信息

    1 package com.test; 2 3 import java.util.Properties; 4 import java.util.Map.Entry; 5 6 import org.ju ...

最新文章

  1. 委托与事件代码详解与(Object sender,EventArgs e)详解
  2. 乔布斯成功的七条秘诀
  3. crontab清理日志
  4. LeetCode 587. 安装栅栏 / LintCode 1152. 安装栅栏(凸包检测:排序+叉积正负判断+正反扫描+去重)
  5. 访问日志不记录静态文件、访问日志切割、静态元素过期时间
  6. 通过子网掩码留一个ip_教大家如何判断俩个IP是不是在同一个网段?什么是子网掩码?...
  7. Spring Boot + Spring Data + Elasticsearch实例
  8. python封装数据库操作_Python3 数据库操作小封装
  9. 蓝懿iOS培训日志22 图册
  10. png图片怎么转换成jpg
  11. db2的节点编目和数据库编目
  12. google aviator:轻量级Java公式引擎
  13. PDF编辑方法,怎么删除PDF中的一页
  14. 游戏工作室的六种赚钱方法
  15. HTML+CSS【超浪漫的表白网页代码】不会编程也能制作送给女朋友的表白网站
  16. D2. Coffee and Coursework (Hard Version)(思维+贪心)
  17. 消防人员实操训练模拟培训虚拟仿真实训系统软件
  18. 关于手机端点击HTML input输入框页面放大的问题解决放法
  19. SPI 及 NOR Flash 介绍
  20. SpringBoot 集成 kafka,基于注解批量消费设置

热门文章

  1. 境外诈骗,最新来自senegal的邮件诈骗
  2. HOUDINI 粒子拖尾
  3. wamp5虚拟主机的配置
  4. 勒索病毒的种类和传播方式
  5. SD卡格式化|SD卡数据恢复技巧
  6. 关于mysql的题目_关于MySQL的经典例题50道 答案参考
  7. golang调用aliyun的语音通话
  8. java设计课堂派的教师端
  9. Part-02/通过案例学爬虫(豆瓣电影TOP250)
  10. Jira Seraph 中的身份验证绕过漏洞(CVE-2022-0540)