BobCoder 发表于 2017-10-9 22:03

JFrame制作百度链接推送工具 2.0【源码】

本帖最后由 阿宁宽带刷钻 于 2017-10-10 11:44 编辑

   最近看到有些人再找百度主动推送的工具,今天闲来无事就自己动手用JFrame做了一个。
   由于才自学JFrame没多久,所以界面做的比较简洁,但是功能还是没问题的。有兴趣的小伙伴可以自己研究一下,
   本来想添加一些正则表达式的,但是觉得太麻烦了,就没加进去,希望大家别介意。

先上点代码:
【页面组件】


private JLabel jl1;
    private JLabel jl2;
    private JLabel jl3;
   
    private JPanel jp1;
    private JPanel jp2;
    private JPanel jp3;
    private JPanel jp4;
    private JPanel jp5;
    private JPanel jp6;
   
    private JButton jb1;
    private JButton jb2;
   
    JTextField transverse;
    private JTextArea jt;
    private JScrollPane js;
   
public IndexJFrame() throws URISyntaxException, IOException {
Container container=getContentPane();//创建一个容器
transverse = new JTextField(28);
transverse.setBounds(378, 202, 173, 30);
transverse.setFont(MyFont.Static);
transverse.addFocusListener(this);
transverse.setText("请输入推送接口");
   
jt=new JTextArea(15,28);//创建文本域组件
jt.setFont(MyFont.Static);
jt.addFocusListener(this);
   jt.setText("请输入推送链接");

         jl1=new JLabel("推送接口:",JLabel.LEFT);
         jl2=new JLabel("推送链接:",JLabel.LEFT);
         jl3=new JLabel("每个链接一行,注意换行,格式整齐!",JLabel.LEFT);
         jl3.setForeground(Color.red);
      
         Dimension preferredSize = new Dimension(75,35);//设置尺寸
         
         jb1=new JButton("提交");
         jb1.setPreferredSize(preferredSize);
         jb1.addMouseListener(this);
         
         jb2=new JButton("重置");
         jb2.setPreferredSize(preferredSize);
         jb2.addMouseListener(this);
      
      
      jp1=new JPanel();
      jp1.setBorder(new EmptyBorder(5, 10, 0, 10)); // 设置边距
      jp1.add(jl1);
      container.add(jp1);

      jp5=new JPanel();
      jp5.setBorder(new EmptyBorder(5, 10, 0, 10)); // 设置边距
      jp5.add(transverse);
      container.add(jp5);
      
      jp2=new JPanel();
      jp2.setBorder(new EmptyBorder(5, 10, 0, 10)); // 设置边距
      jp2.add(jl2);
      container.add(jp2);
      
      js=new JScrollPane(jt);//创建JScrollPane面板对象

      jp4=new JPanel();
      jp4.setBorder(new EmptyBorder(5, 10, 0, 10)); // 设置边距
      jp4.add(js);
      container.add(jp4);
      
      jp6=new JPanel();
      jp6.setBorder(new EmptyBorder(-5, 10, 0, 10)); // 设置边距
      jp6.add(jl3);
      container.add(jp6);
      
      jp3=new JPanel();
      jp3.setBorder(new EmptyBorder(0 ,120, 10, 10)); // 设置边距
      jp3.add(jb1);
      jp3.add(jb2);
      
      container.add(jp3);
         
      setLayout(new FlowLayout(FlowLayout.LEFT,4,4));//设置网格布局管理器3行1列
      setTitle("百度链接推送 -- Bob");
      setSize(480,610);
      setResizable(false);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setUndecorated(true);
      setBackground(Color.WHITE);
      setVisible(true);
}


【接受数据】
// 鼠标点击事件
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == jb1) {
if ("请输入推送接口".equals(transverse.getText())) {
JOptionPane.showMessageDialog(null, "推送接口不能为空", "错误提示",JOptionPane.ERROR_MESSAGE);
} else if ("请输入推送链接".equals(jt.getText())) {
JOptionPane.showMessageDialog(null, "推送链接不能为空", "错误提示",JOptionPane.ERROR_MESSAGE);
}else {
String api = transverse.getText();
String url = jt.getText();
String[] urls = url.split("\n");
String json = Post(api, urls);//执行推送方法
    Gson gs = newGson();
    JSONObject rs = JSONObject.fromObject(json);
    System.out.println("成功推送:"+rs.get("success")+" 条,今日剩余推送条数:"+rs.get("remain")+" 条");//打印推送结果
    JOptionPane.showMessageDialog(null, "成功推送:"+rs.get("success")+" 条,今日剩余推送条数:"+rs.get("remain")+" 条","推送结果",JOptionPane.PLAIN_MESSAGE);
}
}else if(e.getSource() == jb2) {
transverse.setText("请输入推送接口");
jt.setText("请输入推送链接");
}
}

【POST方式推送链接】
/**
   * 百度链接实时推送
   * @param PostUrl
   * @param Parameters
   * @Return
   */
    public static String Post(String PostUrl,String[] Parameters){
      if(null == PostUrl || null == Parameters || Parameters.length ==0){
            return null;
      }
      String result="";
      PrintWriter out=null;
      BufferedReader in=null;
      try {
            //建立URL之间的连接
            URLConnection conn=new URL(PostUrl).openConnection();
            //设置通用的请求属性
            conn.setRequestProperty("Host","data.zz.baidu.com");
            conn.setRequestProperty("User-Agent", "curl/7.12.1");
            conn.setRequestProperty("Content-Length", "83");
            conn.setRequestProperty("Content-Type", "text/plain");
               
            //发送POST请求必须设置如下两行
            conn.setDoInput(true);
            conn.setDoOutput(true);
               
            //获取conn对应的输出流
            out=new PrintWriter(conn.getOutputStream());
            //发送请求参数
            String param = "";
            for(String s : Parameters){
                param += s+"\n";
            }
            out.print(param.trim());
            //进行输出流的缓冲
            out.flush();
            //通过BufferedReader输入流来读取Url的响应
            in=new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while((line=in.readLine())!= null){
                result += line;
            }
               
      } catch (Exception e) {
            System.out.println("发送post请求出现异常!"+e);
            e.printStackTrace();
      } finally{
            try{
                if(out != null){
                  out.close();
                }
                if(in!= null){
                  in.close();
                }
                  
            }catch(IOException ex){
                ex.printStackTrace();
            }
      }
      return result;
    }

下面是效果图:
这是昨天写的1.0版本



今天完善了下



长得可能丑了点,大家可以自己优化下。

另外,如果需要网页版百度一键推送源码的小伙伴可以联系我要源码,不过网页版的是用PHP写的。




下面是源码下载地址:



拨Q 发表于 2017-10-9 22:11

怎么批量提取网址链接呢。一个个点开太麻烦了

BobCoder 发表于 2017-10-9 22:15

拨Q 发表于 2017-10-9 22:11
怎么批量提取网址链接呢。一个个点开太麻烦了

可以自己写个正则表达式,输入链接+表达式,自动生成链接,这样就快了,但是我今天快下班了就没去研究,明天有空我就做出来。

Mr.myl 发表于 2017-10-9 22:39

看到宽带刷钻,感觉是好久以前了{:1_937:}

拨Q 发表于 2017-10-9 22:44

阿宁宽带刷钻 发表于 2017-10-9 04:15
可以自己写个正则表达式,输入链接+表达式,自动生成链接,这样就快了,但是我今天快下班了就没去研究, ...

希望楼主有空做出来。关注你啦:loveliness:

旋木过流年 发表于 2017-10-9 23:19

学习学习

linuxprobe 发表于 2017-10-9 23:27

用JAVA制作的,感觉好高达上~~~~~~~~~

wen123300976 发表于 2017-10-10 11:54

好牛逼。能批量就好了。

夏雨微凉 发表于 2017-10-10 21:35

不知道干嘛的   顶一下楼主

king8222 发表于 2017-11-13 18:52

页: [1] 2
查看完整版本: JFrame制作百度链接推送工具 2.0【源码】