myfirstpost.java

来自「结合httpclient框架的自动顶贴程序」· Java 代码 · 共 85 行

JAVA
85
字号
/**
 * @author panjixiang luckytoskywalker@163.com qq:232037776
 * @since 2007年4月
 */

import java.io.IOException;
import java.sql.Date;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class MyFirstPost {
	public static void main(String[] args) {
		while (true) {
			try {
				Thread.sleep(900000);//每900000毫秒顶贴一次
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			MyFirstPost.post();
		}
	}

	public static void post() {
		String url ="http://bbs.chd.sdo.com/TopicContent.aspx?act=SubmintTopicInfo&BoardID=2&TopicID=25479";
		// "http://bbs.chd.sdo.com/TopicContent.aspx?BoardID=2&TopicID=70240";
		//String url = "http://bbs.chd.sdo.com/TopicContent.aspx?act=SubmintTopicInfo&BoardID=2&TopicID=25479";
		// String url3
		// ="http://bbs.17173.com/rapid_reply.php?id=3256,3257,1910446";
		HttpClient httpClient = new HttpClient();
		PostMethod postMethod = new PostMethod(url);
		postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler(3, false));

		HttpState initialState = new HttpState();
		String cookies = "LHNGSRqV5fsRMbMPpkseDg==; al=yV6JL66nyLVV4HaTjsOKM0bCL4U7DYnv/IpAQqAcyQTg4hYiSA84IxGTEsFKMsk3OnDv7Ms12VQlzHftCjCcBw==";

		initialState.addCookie(new Cookie("bbs.chd.sdo.com", "cu", cookies,
				"/", new Date(2008, 6, 6), false));// 设置cookies

		httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(
				30000);
		httpClient.setState(initialState);
		httpClient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);// RFC_2109是支持较普遍的一个,还有其他cookie协议

		NameValuePair[] data = {  new NameValuePair("subject", "up"), //顶贴内容标题:up 内容upupup
		new NameValuePair("message", "upupup") };
		// 将表单的值放入postMethod中
		postMethod.setRequestBody(data);

		int statusCode = 0;
		try {
			statusCode = httpClient.executeMethod(postMethod);
		} catch (HttpException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
		// 301或者302
		if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
				|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
			// 从头中取出转向的地址
			Header locationHeader = postMethod.getResponseHeader("location");
			String location = null;
			if (locationHeader != null) {
				location = locationHeader.getValue();
				System.out.println("The page was redirected to:" + location);
			} else {
				System.err.println("Location field value is null.");
			}
			return;
		}

		postMethod.releaseConnection();// 释放连接

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?