没有调用第三方接口,纯Java代码完成

使用IDEA编辑器直接打开Douyin文件夹,文件夹已打包上传到网盘

下载地址:https://www.lanzous.com/i4id9mb

Tools.java

package com.lhr;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

import java.net.URLConnection;

public class Tools{

private String cookies="odin_tt=9a16fa42e650a96379a5901a3d146c7c244dc0c35971927f6e13c208fc4bcf9cc952542516f78dc9098ac4d179f3b127cddfdff2942d259dda9ca33de8ae7677; install_id=43619087057; ttreq=1$4c4b4cc4b31e6f2f4203b62a1df12b43e224434c; qh[360]=1";

public Tools(){

}

/**

*

* 这里获取作品ID

* */

public String getId (String url){

String result=sendGet(url);

result=getSubString(result,"/share/video/","/?");

return result;

}

/**

* 解析真实地址返回的数据其实是json格式的,Java语言本身不支持json解析,需要借助第三方jar

*

* 这里就直接使用getsubstring

*

* */

public String getUrl (String url){

String result=sendGet(url);

result=getSubString(result,"play_addr_lowbr","width");

result=getSubString(result,"url_list\":[\"","\",\"");

return result;

}

/**

* 取出中间文本

*

* */

private String getSubString(String str,String left,String right){

String strRight="";

int indexLeft = str.indexOf(left);

if(indexLeft==-1){

return "";//没有找到直接返回空以免出现异常

}else{

strRight=str.substring(indexLeft);

}

int length=str.length()-strRight.length();

int indexRight = strRight.indexOf(right);

if (indexRight==-1){

return "";

}

String result=str.substring(length+left.length(),length+indexRight);

return result;

}

private String sendGet(String url) {

String result = "";

BufferedReader in = null;

try {

URL realUrl = new URL(url);

//打开和URL之间的连接

URLConnection connection = realUrl.openConnection();

//设置通用的请求属性

connection.setRequestProperty("accept", "*/*");

connection.setRequestProperty("connection", "Keep-Alive");

connection.setRequestProperty("Accept-Encoding", "utf-8");

connection.setRequestProperty("Host", "api-hl.amemv.com");

connection.setRequestProperty("user-agent","okhttp/3.10.0.1");

connection.setRequestProperty("cookie",this.cookies);

//建立实际的连接

connection.connect();

in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

}catch(Exception e) {

//发送异常

return "发送失败,请检查URL地址是否正确";

}finally{

try{

if(in != null){

in.close();

}

}catch(Exception e2) {

//关闭异常

System.out.println("关闭异常");

}

}

return result;

}

}

码云链接:

https://gitee.com/lhr0321/20175318_JAVA/tree/master/Douyin

抖音Java接口_Java版抖音解析接口相关推荐

  1. java实现多个接口_java允许实现多个接口

    java不允许多重继承,也就是说一个子类只能有一个父类,Son extends FatherA,FatherB 是错误的为了弥补这点不 足,java允许实现多个接口, 接口就是给出一些没有内容的方法, ...

  2. java中抽象类 接口_java中的抽象类与接口

    1.抽象类的定义 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 2.简单实例 ...

  3. java callable接口_Java多线程之Callable接口的实现有返回值的线程

    import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util. ...

  4. java中如何定义接口_java中如何定义一个接口

    使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下:[修饰符] interface 接口名 [e ...

  5. java调用远程 接口_java通过url调用远程接口返回json数据

    java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...

  6. 软件外部接口和内部接口_java中的内部类内部接口详解

    简介 一般来说,我们创建类和接口的时候都是一个类一个文件,一个接口一个文件,但有时候为了方便或者某些特殊的原因,java并不介意在一个文件中写多个类和多个接口,这就有了我们今天要讲的内部类和内部接口. ...

  7. 搭建一个解析接口教程(自己的解析接口,可自定义广告)

    搭建一个解析接口(自己的解析接口,可自定义广告) 演示网站:https://vip.yftx2020.top 一.下载解析源码 解析源码下载 提取码:3tkq 二.修改user.php文件(压缩包里有 ...

  8. 飞机大作战java源代码_java实现抖音飞机大作战

    本文实例为大家分享了java抖音飞机大作战的具体代码,供大家参考,具体内容如下 Airplane.java package zmf.game.shoot; import java.util.Rando ...

  9. 抖音java表白教程_抖音上的表白代码是什么 抖音表白代码怎么写

    抖音上的表白代码是什么 以前大家总说工科生不懂浪漫,但最近抖音上很流行用代码来表白,将代码编写好,然后将文档发给要表白的对象,然后就可以等着对方进入你的表白套路了.其实这是弹窗表白的代码不是很复杂,一 ...

最新文章

  1. Linux终端设备详解
  2. 当城市实现完全自动驾驶,车该怎么开?人该怎么走?
  3. windows 批处理
  4. 360能卸载oracle,如何完全卸载Oracle
  5. 51CTO下载“开心辞典” 实现你的下载豆梦想【已结束】
  6. osi模型_OSI模型
  7. 修改Linux文件的读写权限
  8. html隐藏标签console,console的隐藏知识点,你get到了嘛?
  9. 志远电脑公司网站系统
  10. ami码matlab,matlab编程实现ami码的相关问题
  11. mq消息队列到底是什么
  12. 如何在阿里云建立网站
  13. 签订保险合同后的事-续保、批单、退保、理赔
  14. python3网络爬虫(堆糖网)
  15. Android Jetpack架构篇:Room
  16. MySQL数据库对象
  17. 客户细分是客户关系管理的重要手段
  18. 苹果强制使用HTTPS传输后APP开发者必须知道的事
  19. Unity Mathf【Deg Rad】- 关于数学运算中的度与弧度
  20. 163邮箱自动化登录实现模块化【1】

热门文章

  1. [GIS原理] 3 空间数据模型
  2. 前端开发工程师 职业规划
  3. 终于没能抵制住诱惑!
  4. c语言实现hdr图像合成,系统学摄影:如何拍摄HDR图像?
  5. python读取Excel表格,运营商通信数据
  6. 智能车调参经验(超级详细!!!手把手教)【一】
  7. Git仓库 保姆级教程
  8. 基于springboot教师人事档案管理系统【源码+论文】展示
  9. windows 杀死进程
  10. python copy函数用法_copy.copy()函数用法