1. public String getContent(String url) {
    2. // okHttpClient 实例
    3. OkHttpClient okHttpClient = new OkHttpClient();
    4. // 定义一个request
    5. Request request = new Request.Builder()
    6. .url(url)
    7. .addHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1")
    8. .addHeader("Referer","https://www.fastmock.site/")
    9. .addHeader("Host","www.fastmock.site")
    10. .build();
    11. // 返回结果字符串
    12. String result = null;
    13. try {
    14. // 执行请求
    15. Response response = okHttpClient.newCall(request).execute();
    16. // 获取响应内容
    17. result = response.body().string();
    18. } catch (IOException e) {
    19. System.out.println("request " + url + " error . ");
    20. e.printStackTrace();
    21. }
    22. return result;
    23. }
    1. public static void main(String[] args) {
    2. String url = "https://www.fastmock.site/mock/3d95acf3f26358ef032d8a23bfdead99/api/info/suggestion?from=web&format=json&word=刺心&third_type=0&client_type=0&version=2";
    3. ApiAsker asker = new ApiAsker();
    4. String content = asker.getContent(url);
    5. // 解析结果
    6. System.out.println("歌曲");
    7. Map map =JSON.parseObject(content,Map.class);
    8. Map data =(Map)map.get("data");
    9. List songs =(List) data.get("song");
    10. for (Object song : songs) {
    11. Map eachsong =(Map)song;
    12. System.out.println(eachsong.get("songname"));
    13. }
    14. }

    Host作用Host表示当前请求的域名。虽然这个域名已经存在于URL中,但遇到复杂的场景,例如使用代理服务器、或者uRL中不写域名而是写T地址进行请求等,设置Host就非常有用了。 :::info Referer 、Host都使用与图片相同的域名,但注意二者的写法有不同哦。 :::