自动往iteyeblog发帖,原来可以,现在怎么不好用了,贴出代码,请高手帮忙分析
开始的时候是好用的,一段时间后不能用了,不知道怎么回事,下面是开始好用时候的代码
package function.post;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.CookieStore;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.params.CookiePolicy;import org.apache.http.client.params.HttpClientParams;import org.apache.http.client.protocol.ClientContext;import org.apache.http.impl.client.BasicCookieStore;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.BasicHttpContext;import org.apache.http.protocol.HttpContext;import org.apache.http.util.EntityUtils;public class IteyePost {public static void main(String args[]) throws Exception, Exception{IteyePost ia= new IteyePost();ia.send("题目2","内容内容内容内容内容内容内容"); //发帖方法}private void send(String titlett,String content) throws Exception {HttpClient httpclient = new DefaultHttpClient(); // 这一行必须要加,否则服务器无法获取登陆状态 HttpClientParams.setCookiePolicy(httpclient.getParams(),CookiePolicy.BROWSER_COMPATIBILITY);CookieStore cookieStore = new BasicCookieStore(); // Create local HTTP context HttpContext localContext = new BasicHttpContext(); // Bind custom cookie store to the local context localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); HttpPost httppost=new HttpPost("http://www.iteye.com/login");//创建参数列队List<NameValuePair> formparams=new ArrayList<NameValuePair>();formparams.add(new BasicNameValuePair("name","**********"));formparams.add(new BasicNameValuePair("password","********"));formparams.add(new BasicNameValuePair("button","登 录"));UrlEncodedFormEntity uefEntity;uefEntity= new UrlEncodedFormEntity(formparams,"UTF-8");httppost.setEntity(uefEntity);HttpResponse response= httpclient.execute(httppost,localContext);int statusCode; statusCode=response.getStatusLine().getStatusCode();System.out.println(response.getStatusLine()); httppost.abort(); //post 连接关闭,关了一个才能连下一个 //验证登陆结束,下面开始发帖! httppost=new HttpPost("http://tomfish88.iteye.com/admin/blogs"); formparams=new ArrayList<NameValuePair>();formparams.add(new BasicNameValuePair("blog[origin]","0"));formparams.add(new BasicNameValuePair("blog[origin]","1"));formparams.add(new BasicNameValuePair("blog[category_id]","129003"));formparams.add(new BasicNameValuePair("blog[title]",titlett));formparams.add(new BasicNameValuePair("blog[sys_category_id]","1"));formparams.add(new BasicNameValuePair("blog[sys_tag_id]","323"));formparams.add(new BasicNameValuePair("auto_save_id",""));formparams.add(new BasicNameValuePair("blog[bbcode]","false"));formparams.add(new BasicNameValuePair("blog[body]",content));formparams.add(new BasicNameValuePair("blog[diggable]","0")); //是否发首页formparams.add(new BasicNameValuePair("commit","提交")); uefEntity= new UrlEncodedFormEntity(formparams,"UTF-8");httppost.setEntity(uefEntity); response= httpclient.execute(httppost,localContext); statusCode=response.getStatusLine().getStatusCode();System.out.println(response.getStatusLine());// EntityUtils.consume(entity); // entity销毁 httppost.abort(); //post 连接关闭,关了一个才能连下一个 // EntityUtils.consume(entity); // entity销毁 httpclient.getConnectionManager().shutdown();}}package function.httpclient;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.http.Header;import org.apache.http.HeaderIterator;import org.apache.http.HttpEntity;import org.apache.http.HttpHost;import org.apache.http.HttpRequest;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.ProtocolException;import org.apache.http.client.CookieStore;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.params.ClientPNames;import org.apache.http.client.params.CookiePolicy;import org.apache.http.client.params.HttpClientParams;import org.apache.http.client.protocol.ClientContext;import org.apache.http.cookie.Cookie;import org.apache.http.impl.client.AbstractHttpClient;import org.apache.http.impl.client.BasicCookieStore;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.impl.client.DefaultRedirectStrategy;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.BasicHttpContext;import org.apache.http.protocol.ExecutionContext;import org.apache.http.protocol.HttpContext;import org.apache.http.util.EntityUtils;public class Test3 {public Header login(String user,String pass) throws Exception{HttpClient httpclient = new DefaultHttpClient(); HttpClientParams.setCookiePolicy(httpclient.getParams(),CookiePolicy.BROWSER_COMPATIBILITY);String cookie="";String split="";HttpPost httppost=new HttpPost("http://tomfish88.iteye.com/login");List<NameValuePair> formparams=new ArrayList<NameValuePair>();formparams.add(new BasicNameValuePair("user_name","*******"));formparams.add(new BasicNameValuePair("password","*******"));UrlEncodedFormEntity uefEntity;uefEntity= new UrlEncodedFormEntity(formparams,"UTF-8");httppost.setEntity(uefEntity);//httppost.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.231 Safari/534.10");HttpResponse response= httpclient.execute(httppost); HttpEntity entity = response.getEntity(); if (entity == null) throw new Exception("登录失败了"); Header head=response.getFirstHeader("Set-Cookie"); System.out.println("cookie----------");// System.out.println(head.getValue()); HeaderIterator it =response.headerIterator("Set-Cookie"); while(it.hasNext()){ cookie+=split+it.next().toString(); split=";"; }return head;}public static void main(String args[]) throws Exception, Exception{Test3 ts= new Test3();Header cc=ts.login("********", "*****");System.out.println(cc);DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("http://tomfish88.iteye.com"); httpget.setHeader(cc); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity();System.out.println(EntityUtils.toString(entity,"UTF-8"));System.out.println("------------------end1----------------------");}}