我爱java系列---【java模拟浏览器发送请求,调用常用的api】

推荐常用接口网址:

  聚合数据:https://www.juhe.cn/docs

  极速数据:https://www.jisuapi.com/api/

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
 
public class Test {
    public static void main(String[] args) throws IOException {
        //1、将发送到服务器的中文,进行url编码
        String content = URLEncoder.encode("北京天气", "utf-8");
         
        //2、准备网址,创建一个url对象     //注意kksb,key:密钥;number:手机号;code:验证码     //String urlStr = "https://itdage.com/kksb/kksbsms?key=kksb&number=16612345679&code=666";
        String urlStr = "https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question=" + content;
        URL url = new URL(urlStr);
         
        //3、建立连接,通过url,打开网络连接,并得到连接对象conn
        //3.1正常访问,未加浏览器标识,这时候会导致被一些api拦截,识别为恶意攻击的请求
        //URLConnection conn = url.openConnection();
        //3.2加了浏览器标识的访问,模拟浏览器发请求("User-Agent"可以自行百度)
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1");
         
        //4、通过连接对象,获取输入流is
        InputStream is = conn.getInputStream();
         
        //5、将输入流is,装饰为一次能读取一行的缓冲字符输入流
        BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
         
        //6、读取内容
        String text = br.readLine();
        System.out.println(text);
         
        //7、关闭流
        br.close();
    }
}

  

posted on   少年攻城狮  阅读(523)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-11-19 Mysql系列---【mysql自动更新创建时间和更新时间】
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示