模拟自动登录并发表日志

公司要求每天都需要写工作日志,并且在一个社区里面发表,由于公司不能 上网因此自己写了一个模拟小程序放在手机上,实现自动登录并发表日志在这里做一个备份,以防以后会用到类似功能
package com.socket;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

public class MyHttpClient {
// TODO Auto-generated method stub
private static HttpClient client = new HttpClient();
/**
* @param args
* @throws IOException
* @throws HttpException
*/
public static void main(String[] args) throws HttpException, IOException {
if(login())
{
System.out.println("登录成功");
if(shareLog("日志发布成功拉!"))
{
System.out.println("分享成功");

}
}
}

/**
* * 使用POST方式提交数据 * @return   
*/
private static HttpMethod getLoginPostMethod() {
PostMethod post = new PostMethod("https://www.belink.com/j_spring_security_check");
NameValuePair password = new NameValuePair("j_password", "密码");
NameValuePair name = new NameValuePair("j_username","用户名");
NameValuePair remember = new NameValuePair("spring_security_remember_me", "on");
post.setRequestBody(new NameValuePair[] { name, password,remember});
return post;
}
/**
* 登录
*/
private static boolean login() throws HttpException, IOException
{
HttpMethod method = getLoginPostMethod();
client.executeMethod(method);
// 打印服务器返回的状态
System.out.println(method.getStatusLine());
//页面重定向
int statuscode=method.getStatusCode();
if(statuscode==HttpStatus.SC_MOVED_TEMPORARILY)
{
Header header=method.getResponseHeader("location");
if(header!=null)
{
String redirectUrl=header.getValue();
if(redirectUrl!=null&&!"".equals(redirectUrl))
{
GetMethod redirect=new GetMethod("https://www.belink.com/portal/main");
redirect.setRequestHeader("Accept", " text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
redirect.setRequestHeader("Accept-Encoding", "gzip, deflate");
redirect.setRequestHeader("Host", "www.belink.com");
redirect.setRequestHeader("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
redirect.setRequestHeader("Connection", "keep-alive");
redirect.setRequestHeader("Referer", "https://www.belink.com/home_login.jsp");
redirect.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0");
redirect.setRequestHeader("Cookie", "Hm_lvt_449f6364887899ece45a9a548972604a=1353419946,1353496848,1353593152,1353999974; Hm_lpvt_449f6364887899ece45a9a548972604a=1354007630; login_userid=chelei%40belink.com; JSESSIONID=4BF7C7FA4D6CB53801B999CEE950D9F5; SPRING_SECURITY_REMEMBER_ME_COOKIE=Sk1OMVp1blkzVjJGNlBucDgyWlgrdz09OkhZZE5kMFhxYkg3b29jd3RsNW8xZXc9PQ");
client.executeMethod(redirect);
System.out.println(redirect.getResponseBodyAsString());
System.out.println("Redirect:"+redirect.getStatusLine().toString());
redirect.releaseConnection();
if(redirect.getStatusCode()==HttpStatus.SC_OK)
{
// 释放连接
method.releaseConnection();
return true;
}
}
}
}
return false;
}
/**
* 分享日志
* @return
* @throws IOException
* @throws IOException
* @throws HttpException
*/
private static boolean shareLog(String logContent) throws IOException
{
PostMethod post = new PostMethod("https://www.belink.com/service/event/publish.json");
//日志发布时间
SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");
NameValuePair content = new NameValuePair("content", "{\"endTime\":\""+format.format(new Date())+"\",\"title\":\"我的日志\",\"logContent\":\""+logContent+"\"}");
NameValuePair members=new NameValuePair("members","e40b44bbae171ffa5dfd1299d4c791f3");
NameValuePair message = new NameValuePair("message"," 我发起了一个$日志");
NameValuePair open = new NameValuePair("open", "false");
NameValuePair type = new NameValuePair("type", "log");

post.setRequestBody(new NameValuePair[] { content,members,message,open,type});
post.setRequestHeader("Accept", "*/*");
post.setRequestHeader("Accept-Encoding", "gzip, deflate");
post.setRequestHeader("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
post.setRequestHeader("Cache-Control", "no-cache");
post.setRequestHeader("Connection", "keep-alive");
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
post.setRequestHeader("Host", "www.belink.com");
post.setRequestHeader("Pragma", "no-cache");
post.setRequestHeader("Referer", "https://www.belink.com/portal/app");
post.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0");
post.setRequestHeader("X-Requested-With", "XMLHttpRequest");
try {
client.executeMethod(post);
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("分享日志提交状态:"+post.getStatusLine());
if(post.getStatusCode()==HttpStatus.SC_OK)
{
System.out.println(post.getResponseBodyAsString());
post.releaseConnection();
return true;
}

return false;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值