本帖最后由 阿宁宽带刷钻 于 2017-10-10 11:44 编辑
最近看到有些人再找百度主动推送的工具,今天闲来无事就自己动手用JFrame做了一个。
由于才自学JFrame没多久,所以界面做的比较简洁,但是功能还是没问题的。有兴趣的小伙伴可以自己研究一下,
本来想添加一些正则表达式的,但是觉得太麻烦了,就没加进去,希望大家别介意。
先上点代码:
【页面组件】
[Java] 纯文本查看 复制代码 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);
}
【接受数据】
[Java] 纯文本查看 复制代码 // 鼠标点击事件
@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 = new Gson();
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方式推送链接】
[Java] 纯文本查看 复制代码 /**
* 百度链接实时推送
* @param PostUrl
* @param Parameters
* [url=home.php?mod=space&uid=155549]@Return[/url]
*/
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写的。
下面是源码下载地址:
下载地址2.0.txt
(48 Bytes, 下载次数: 73)
|