bing壁纸获取(Java)
获取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)相关推荐
- 关于Bing壁纸获取无法打开图片
获取Bing壁纸时能正确获得url,但是保存的文件却无法打开,查找后发现有反爬策略,加入如下headers headers = {'Host': 'bing.ioliu.cn','Pragma': ' ...
- java获取Bing壁纸
首先声明这是看了大佬得得博客封装的一个获取bing壁纸的方法 目的 平时觉得bing的壁纸挺好看的的就想获取它的把一些图片保存起来,所以就找了一下相关信息,于是就有了这篇博客. 环境准备 这里我使用的 ...
- 使用Python获取bing壁纸接口
原文地址–>点击进入阅读 注意:该接口和代码仅供学习使用!请勿将传回的壁纸用于非法用途!请尊重版权!树立版权意识! 由于读者自身行为导致的侵权,作者概不负责! Bing壁纸 Bing的壁纸是每天 ...
- 微软 bing 壁纸 每日一图 bing api
作者提供了一个在线的壁纸服务地址如下: http://47.111.254.61:8000/bingWpget请求或者粘贴到浏览器就可以获取最新的bing壁纸.谢谢. 如果地址不能使用了,请联系qq ...
- linux自动刷新桌面,Ubuntu下实现用Python开机自动更新壁纸为bing壁纸
因为用的Windows Phone的手机,里面有一个手机锁屏每天自动更新为bing的壁纸,用着挺好的,遂想在Ubuntu下实现这个功能,断断续续折腾了一两个星期,惭愧.不过好在最终还是将所有的功能实现 ...
- Python爬虫——爬取Bing壁纸
个人作为获取壁纸的小脚本 所以添加了random模块,壁纸以日期命名,每天随机领取一张新壁纸 使用requests库爬取,re正则提取数据 使用PIL库 将下载的壁纸自动展示 # -*- coding ...
- python主题壁纸下载_Python 下载Bing壁纸
这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭 ...
- python主题壁纸下载_Python 下载Bing壁纸的示例
这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭 ...
- 双击下载当日bing壁纸
... 语言 go 直接贴代码 语言 go 其实python 更加方便,但是不好打包,,不说,go就是香 直接贴代码 原本以为,还要一些其他的东西,但是发现直接赢刚就是完事,,代码简单,这里不再赘述, ...
- 获取Java系统相关信息
1 package com.test; 2 3 import java.util.Properties; 4 import java.util.Map.Entry; 5 6 import org.ju ...
最新文章
- 委托与事件代码详解与(Object sender,EventArgs e)详解
- 乔布斯成功的七条秘诀
- crontab清理日志
- LeetCode 587. 安装栅栏 / LintCode 1152. 安装栅栏(凸包检测:排序+叉积正负判断+正反扫描+去重)
- 访问日志不记录静态文件、访问日志切割、静态元素过期时间
- 通过子网掩码留一个ip_教大家如何判断俩个IP是不是在同一个网段?什么是子网掩码?...
- Spring Boot + Spring Data + Elasticsearch实例
- python封装数据库操作_Python3 数据库操作小封装
- 蓝懿iOS培训日志22 图册
- png图片怎么转换成jpg
- db2的节点编目和数据库编目
- google aviator:轻量级Java公式引擎
- PDF编辑方法,怎么删除PDF中的一页
- 游戏工作室的六种赚钱方法
- HTML+CSS【超浪漫的表白网页代码】不会编程也能制作送给女朋友的表白网站
- D2. Coffee and Coursework (Hard Version)(思维+贪心)
- 消防人员实操训练模拟培训虚拟仿真实训系统软件
- 关于手机端点击HTML input输入框页面放大的问题解决放法
- SPI 及 NOR Flash 介绍
- SpringBoot 集成 kafka,基于注解批量消费设置