开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1531|回复: 4
收起左侧

[已解决] 请问谁能帮我把这个代码转成易语言的

 关闭 [复制链接]
结帖率:81% (26/32)
发表于 2019-1-6 10:56:59 | 显示全部楼层 |阅读模式   上海市上海市
10精币
这是接口:https://api.amemv.com/aweme/v1/hot/search/list/?iid=44478516381&device_id=12229011297&os_api=18&app_name=aweme&channel=App%20Store&idfa=5FDF9129-D8F4-4594-96FE-6EC18AD136B9&device_platform=iphone&build_number=26006&vid=AB52ACAA-1E73-44D1-9BC2-BB1D74A6F682&openudid=282a2be914adb26833e880d38ee671e45da49829&device_type=iPhone7,2&app_version=2.6.0&version_code=2.6.0&os_version=12.0&screen_width=750&aid=1128&ac=WIFI&detail_list=0&mas=017c141ec42dace5a30cd06954fe1cbb40142e84eb9df316cf8287&as=a165392a937d1b9e756732&ts=1537580755
这个接口可以获取抖音热门内容,请问怎么用易语言做一个功能一样的

  1. import java.util.List;


  2. /**
  3. * json数据结构对象
  4. *  
  5. */
  6. public class DouClass {

  7.     private List<AwemeList> aweme_list;

  8.     public List<AwemeList> getAweme_list() {
  9.         return aweme_list;
  10.     }

  11.     public void setAweme_list(List<AwemeList> aweme_list) {
  12.         this.aweme_list = aweme_list;
  13.     }

  14.     @Override
  15.     public String toString() {
  16.         return "DouClass [aweme_list=" + aweme_list + "]";
  17.     }

  18.      

  19.      
  20.    
  21. }

  22. /**
  23. * 大對象
  24. *  
  25. */
  26. class AwemeList{
  27.     private Video video;
  28.     private ShareInfo share_info ;

  29.     private String desc ;
  30.     public Video getVideo() {
  31.         return video;
  32.     }

  33.     public void setVideo(Video video) {
  34.         this.video = video;
  35.     }

  36.      

  37.     public ShareInfo getShare_info() {
  38.         return share_info;
  39.     }

  40.     public void setShare_info(ShareInfo share_info) {
  41.         this.share_info = share_info;
  42.     }

  43.    
  44.    
  45.     public String getDesc() {
  46.         return desc;
  47.     }

  48.     public void setDesc(String desc) {
  49.         this.desc = desc;
  50.     }

  51.     @Override
  52.     public String toString() {
  53.         return "AwemeList [video=" + video + ", share_info=" + share_info
  54.                 + ", desc=" + desc + "]";
  55.     }

  56.      
  57.    
  58. }


  59. /**
  60. * 視頻
  61. *  
  62. */
  63. class Video {
  64.     private PlayAddr play_addr ;

  65.     public PlayAddr getPlay_addr() {
  66.         return play_addr;
  67.     }

  68.     public void setPlay_addr(PlayAddr play_addr) {
  69.         this.play_addr = play_addr;
  70.     }

  71.     @Override
  72.     public String toString() {
  73.         return "Video [play_addr=" + play_addr + "]";
  74.     }

  75.      

  76. }


  77. /**
  78. * 視頻地址
  79. *  
  80. */
  81. class PlayAddr{
  82.     private List<String> url_list;

  83.     public List<String> getUrl_list() {
  84.         return url_list;
  85.     }

  86.     public void setUrl_list(List<String> url_list) {
  87.         this.url_list = url_list;
  88.     }

  89.     @Override
  90.     public String toString() {
  91.         return "PlayAddr [url_list=" + url_list + "]";
  92.     }
  93.    
  94. }

  95. /**
  96. * 視頻內容
  97. *  
  98. */
  99. class ShareInfo{
  100.     private String share_title;

  101.     public String getShare_title() {
  102.         return share_title;
  103.     }

  104.     public void setShare_title(String share_title) {
  105.         this.share_title = share_title;
  106.     }

  107.     @Override
  108.     public String toString() {
  109.         return "ShareInfo [share_title=" + share_title + "]";
  110.     }
  111.    
  112.    
  113. }


复制代码

  1. import java.io.ByteArrayOutputStream;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.net.HttpURLConnection;
  6. import java.net.URL;

  7. import org.apache.http.client.methods.CloseableHttpResponse;
  8. import org.apache.http.client.methods.HttpGet;
  9. import org.apache.http.impl.client.CloseableHttpClient;
  10. import org.apache.http.impl.client.HttpClients;
  11. import org.apache.http.util.EntityUtils;

  12. import com.google.gson.Gson;


  13. //发送http请求,视频下载功能
  14. public class DouYina {
  15.        
  16.         ///发送http
  17.         public static String sendGet(String url){
  18.                  String entity = null;
  19.                   try {
  20.                                  //创建HttpClient
  21.                             CloseableHttpClient httpClient = HttpClients.createDefault();
  22.                             
  23.                             //创建请求方法
  24.                             HttpGet httpGet = new HttpGet(url);
  25.                
  26.                             //设置Header模拟浏览器行为
  27.                             httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36");
  28.                
  29.                           
  30.                         //发送请求,收取响应
  31.                         CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
  32.                
  33.                         if(httpResponse.getStatusLine().getStatusCode() == 200){
  34.                             //解析响应
  35.                             entity = EntityUtils.toString(httpResponse.getEntity());
  36.                            // System.out.println(entity);
  37.                         }
  38.        
  39.                         EntityUtils.consume(httpResponse.getEntity());
  40.                         httpResponse.close();
  41.                           } catch (IOException e) {
  42.                         e.printStackTrace();
  43.                         return null;
  44.                     }
  45.                   return entity;
  46.          }

  47.        
  48.        
  49.         public static byte[] readInputStream(InputStream inputStream) throws IOException {
  50.                 byte[] buffer = new byte[1024];
  51.                 int len = 0;
  52.                 ByteArrayOutputStream bos = new ByteArrayOutputStream();
  53.                 while ((len = inputStream.read(buffer)) != -1) {
  54.                         bos.write(buffer, 0, len);
  55.                 }
  56.                 bos.close();
  57.                 return bos.toByteArray();
  58.         }
  59.        
  60.     //下载视频
  61.         public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
  62.                 URL url = new URL(urlStr);
  63.                 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  64.                 conn.setConnectTimeout(3000);
  65.                 conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
  66.                 InputStream inputStream = conn.getInputStream();
  67.                 byte[] getData = readInputStream(inputStream);
  68.                 java.io.File saveDir = new java.io.File(savePath);
  69.                 if (!saveDir.exists()) {
  70.                         saveDir.mkdir();
  71.                 }
  72.                 java.io.File file = new java.io.File(saveDir + java.io.File.separator + fileName);
  73.                 FileOutputStream fos = new FileOutputStream(file);
  74.                 fos.write(getData);
  75.                 if (fos != null) {
  76.                         fos.close();
  77.                 }
  78.                 if (inputStream != null) {
  79.                         inputStream.close();
  80.                 }
  81.         }
  82. }
复制代码

  1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import java.awt.event.WindowAdapter;
  4. import java.awt.event.WindowEvent;
  5. import java.io.IOException;

  6. import javax.swing.ButtonGroup;
  7. import javax.swing.JButton;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JOptionPane;
  11. import javax.swing.JRadioButton;
  12. import javax.swing.JTextArea;
  13. import javax.swing.JTextField;

  14. import com.google.gson.Gson;





  15. public class Douyin {

  16.        
  17.         public static void main(String[] args) {
  18.                   
  19.                 //主题
  20.                 JFrame f = new JFrame("抖音批量下载");
  21.   
  22.                 //设置大小
  23.                 f.setSize(600, 400);
  24.                 f.setLocation(200, 200);
  25.                  f.setLayout(null);
  26.                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27.                
  28.                
  29.                 //按钮
  30.                 JButton b = new JButton("开始解析下载");
  31.                 b.setBounds(400, 30, 150, 30);
  32.        
  33.                
  34.                 //文字
  35.                 JLabel l = new JLabel("接口地址:");
  36.                 //l.setForeground(Color.black);
  37.                 l.setBounds(20, 20, 100, 30);
  38.                
  39.                 //文本框
  40.                 JTextArea ta = new JTextArea("");
  41.                 ta.setBounds(80, 20, 300, 100);
  42.                 ta.setLineWrap(true);
  43.                 ta.setWrapStyleWord(true);
  44.                
  45.                 /* //为JTextArea添加滚动条
  46.                  
  47.         JScrollPane jsp = new JScrollPane(ta);
  48.         jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  49.         jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);*/
  50.         
  51.         
  52.                
  53.                 //文字
  54.                 JLabel l1 = new JLabel("保存地址:");
  55.                 //l.setForeground(Color.black);
  56.                 l1.setBounds(20, 80, 100, 130);
  57.                
  58.                 JTextField tf = new JTextField("F:\\douyin",30);
  59.                 tf.setBounds(80, 135, 400, 25);
  60.                
  61.                 JRadioButton jr = new JRadioButton("作品");
  62.                 jr.setSelected(false);
  63.                 jr.setBounds(420, 60, 55, 30);
  64.        
  65.                 JRadioButton jr1 = new JRadioButton("喜欢");
  66.                 jr1.setSelected(true);
  67.                 jr1.setBounds(480, 60, 80, 30);
  68.                
  69.                
  70.                 JTextArea ta1 = new JTextArea("初始化.... \n",20, 43);
  71.                 ta1.setBounds(50, 180, 480, 150);
  72.                 ta1.setLineWrap(true);
  73.                 ta1.setWrapStyleWord(true);
  74.                
  75.                 /*//为JTextArea添加滚动条
  76.         JScrollPane jsp1 = new JScrollPane(ta1);
  77.         jsp1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  78.         jsp1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  79.             f.add(jsp1);*/
  80.                
  81.         
  82.                 //按钮分组
  83.                 ButtonGroup bg = new ButtonGroup();
  84.                 bg.add(jr);
  85.                 bg.add(jr1);
  86.                
  87.                 f.add(ta);
  88.                 f.add(ta1);
  89.                 f.add(jr);
  90.                 f.add(jr1);
  91.                 f.add(l);
  92.                 f.add(l1);
  93.                 f.add(tf);
  94.                 f.add(b);
  95.                
  96.                 f.setResizable(false);
  97.                 f.setVisible(true);
  98.                
  99.                
  100.                
  101.                 //按钮解析监听
  102.                 b.addActionListener(new ActionListener() {
  103.                        
  104.                         @Override
  105.                         public void actionPerformed(ActionEvent e) {
  106.                                
  107.                                  
  108.                                 if("".equals(ta.getText())){
  109.                                          JOptionPane.showMessageDialog(f, "请输入接口地址");
  110.                                          return;
  111.                                 }
  112.                                 if(jr.isSelected() == false && jr1.isSelected() == false){
  113.                                         JOptionPane.showMessageDialog(f, "请选择你要下载的类型");
  114.                                         return ;
  115.                                 }
  116.                                 if("".equals(tf.getText())){
  117.                                         JOptionPane.showMessageDialog(f, "请输入你要保存的视频地址");
  118.                                          return;
  119.                                 }
  120.                                 //下载操作
  121.                                
  122.                                 DouYina dy = new DouYina();
  123.                                 Gson g = new Gson();
  124.                                
  125.                                 if(jr.isSelected() == true){
  126.                                         //JOptionPane.showMessageDialog(f, "作品视频接口由于Token加密,暂时还没有办法解析出来");
  127.                                         for(int i=0;i<20000;i++){
  128.                                                 System.out.println(i);
  129.                                         }
  130.                                         ta1.append("下载完成");
  131.                                        
  132.                                        
  133.                                         return ;
  134.                                 }else if(jr1.isSelected() == true){ //作品类
  135.                                          
  136.                                         try {
  137.                                                 String json = dy.sendGet(ta.getText());
  138.                                                 DouClass dc = g.fromJson(json, DouClass.class);
  139.                                                 System.out.println(dc.getAweme_list());
  140.                                                
  141.                                                 for(AwemeList al : dc.getAweme_list()){
  142.                                                         Video v = al.getVideo() ;
  143.                                                         PlayAddr pa = v.getPlay_addr();
  144.                                                         System.out.println(pa.getUrl_list().get(0) );
  145.                                                        
  146.                                                         String urlStr = pa.getUrl_list().get(0) ;
  147.                                                        
  148.                                                         long imageTitile = System.currentTimeMillis();
  149.                                                        
  150.                                                         String fileName = null ;
  151.                                                        
  152.                                                         if( !"".equals(al.getDesc() )){
  153.                                                                   fileName = al.getDesc() + "." + "mp4";
  154.                                                         }else{
  155.                                                                   fileName = imageTitile + "." + "mp4";
  156.                                                         }
  157.                                                         String savePath = tf.getText();
  158.                                                         dy.downLoadFromUrl(urlStr, fileName, savePath);
  159.                                                 }
  160.                                         } catch (Exception e1) {
  161.                                                 JOptionPane.showMessageDialog(f, "接口地址有误");
  162.                                                 return ;
  163.                                         }
  164.                                         ta1.append("下载完成 \n");
  165.                                 }
  166.                                
  167.                         }
  168.                        
  169.                 });
  170.                
  171.                
  172.                
  173.                
  174.                
  175.                  
  176.                
  177.                                
  178.                
  179.         }

  180.          
  181. }
复制代码

最佳答案

查看完整内容

这种需求左转定制区吧,联系我即可{:3_41:}{:3_41:}

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:79% (11/14)
发表于 2019-1-6 10:57:00 高大上手机用户 | 显示全部楼层   北京市北京市
这种需求左转定制区吧,联系我即可{:3_41:}{:3_41:}
回复

使用道具 举报

结帖率:81% (26/32)

签到天数: 14 天

 楼主| 发表于 2019-1-6 10:58:07 | 显示全部楼层   上海市上海市
哪位大佬能帮助一下渺小的我 谢谢啦
4.png
5.png
6.png
回复

使用道具 举报

结帖率:88% (44/50)

签到天数: 3 天

发表于 2019-1-6 11:46:51 | 显示全部楼层   广东省揭阳市
这么一长段要转成易语言10精币是求不到的.上定制区兴许有人搞. 建议定制区.否者只能自己一点一点的去消化学习了
回复

使用道具 举报

结帖率:100% (10/10)

签到天数: 13 天

发表于 2019-1-6 12:44:49 | 显示全部楼层   湖南省永州市
这个完全没必要翻译,都有无水印的接口了,而且返回数据都是JSON格式数据,根据自己的需要获取到视频的地址。直接下载就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表