`

自动往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();
		
	}
}



后来一直报302转向问题,我搞了一个星期了也没搞定,快崩溃了

然后我写了个带cookie跑的,输出内容的时候带登陆框,我知道我又没有登陆成功,接着贴代码

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----------------------");

}}


我用的是httpclient 4.1.1  ,现在是到转向的时候302,打印页面结果如下

<html><body>You are being redirected.</body></html>

就是个转向


然后这个转向如何处理,继续到发表blog页面发表文章呢?





0
10
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    我读软件架构设计.rar

    总的来说,通过深入分析"IteyeBlog.java",我们可以了解到软件架构设计是如何在实际项目中体现的,包括模块化设计、业务流程、设计模式应用、数据访问策略以及测试驱动开发等多个方面。这样的分析有助于提升我们的...

    itchm改版

    通过分析提供的文件名,我们可以推测这次改版涉及到的关键技术点: 1. **HTTP客户端库**: - `httpclient-4.2.1.jar`:这是Apache HttpClient库的一个版本,用于执行HTTP请求。HttpClient提供了丰富的API,支持...

    [AB PLC例程源码][MMS_044666]Translation N-A.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    kolesar_3cd_01_0716.pdf

    kolesar_3cd_01_0716

    latchman_01_0108.pdf

    latchman_01_0108

    matlab程序代码项目案例:matlab程序代码项目案例MPC在美国高速公路场景中移动的车辆上的实现.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    pimpinella_3cd_01_0716.pdf

    pimpinella_3cd_01_0716

    petrilla_01_0308.pdf

    petrilla_01_0308

    [AB PLC例程源码][MMS_041452]Speed Controls in Plastic Extrusion.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    强化学习驱动下DeepSeek技术创新及其对AI发展的影响

    内容概要:本文档由张卓老师讲解,重点探讨DeepSeek的技术革新及强化学习对未来AI发展的重要性。文章回顾了AI的历史与发展阶段,详细解析Transformer架构在AI上半场所起到的作用,深入介绍了MoE混合专家以及MLA低秩注意机制等技术特点如何帮助DeepSeek在AI中场建立优势,并探讨了当前强化学习的挑战和边界。文档不仅提及AlphaGo和小游戏等成功案例来说明强化学习的强大力量,还提出了关于未来人工通用智能(AGI)的展望,特别是如何利用强化学习提升现有LLMs的能力和性能。 适用人群:本资料适宜对深度学习感兴趣的研究人员、开发者以及想要深入了解人工智能最新进展的专业人士。 使用场景及目标:通过了解最新的AI技术和前沿概念,在实际工作中能够运用更先进的工具和技术解决问题。同时为那些寻求职业转型或者学术深造的人提供了宝贵的参考。 其他说明:文中提到了许多具体的例子和技术细节,如DeepSeek的技术特色、RL的理论背景等等,有助于加深读者对于现代AI系统的理解和认识。

    有师傅小程序开源版v2.4.14+前端.zip

    有师傅小程序开源版v2.4.14 新增报价短信奉告 优化部分细节

    [AB PLC例程源码][MMS_047333]Motor Sequence Starter with timers to start.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    商城二级三级分销系统(小程序+后台含源码).zip

    商城二级三级分销系统(小程序+后台含源码).zip

    li_3ck_01b_0918.pdf

    li_3ck_01b_0918

    nicholl_3cd_01_0516.pdf

    nicholl_3cd_01_0516

    1995-2022年 网络媒体关注度、报刊媒体关注度与媒体监督相关数据.zip

    媒体关注度是一个衡量公众对某个事件、话题或个体关注程度的重要指标。它主要反映了新闻媒体、社交媒体、博客等对于某一事件、话题或个体的报道和讨论程度。 媒体监督的J-F系数(Janis-Fadner系数)是一种用于测量媒体关注度的指标,特别是用于评估媒体对企业、事件或话题的监督力度。J-F系数基于媒体报道的正面和负面内容来计算,从而为公众、研究者或企业提供一个量化工具,以了解媒体对其关注的方向和强度。 本数据含原始数据、参考文献、代码do文件、最终结果。参考文献中JF系数计算公式。 指标 代码、年份、标题出现该公司的新闻总数、内容出现该公司的新闻总数、正面新闻数全部、中性新闻数全部、负面新闻数全部、正面新闻数原创、中性新闻数原创、负面新闻数原创,媒体监督JF系数。

    [AB PLC例程源码][MMS_040315]Double INC and Double DEC of INT datatype.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_047773]Convert Feet to Millimeters.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_042349]How to read-write data to-from a PLC using OPC in Visual Basic 6.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例论文代码 多篇RMPC 鲁棒模型预测控制Paper-code-implementation.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

Global site tag (gtag.js) - Google Analytics