用java开发校内网小工具 (三)
校内网的日志是不允许写代码的,只能写文字,不过很多人已经可以往里面插入视频等等,我也会这个,是在“M-aple”和“大石”两位好友的帮助下知道的,后来也用C++Builder开发了一个这样的工具,可以发布多媒体日志,当时开发的方法可以说很烂,就是把发布新日志的代码保存为一个String,然后用软件将这个很长很长的String保存到生成的一个Html里面,然后在用软件打开本地的这个网页,繁琐的很~~
我的学的很烂,也说不清校内网过滤Html代码的原理具体是什么,不过我觉得用post数据的方法可以避开这个限制,呵呵,果然不出我所料,确实是这样的,post数据就可以轻松的突破这个限制,直接写Html代码了~~
最开始我很晕,我写日志后抓到的数据包是这样的:
引用
[code]—————————–7d7da93303e6
Content-Disposition: form-data; name="title"
biaoti2
—————————–7d7da93303e6
Content-Disposition: form-data; name="body"
neirong2
—————————–7d7da93303e6
Content-Disposition: form-data; name="blogControl"
99
—————————–7d7da93303e6
Content-Disposition: form-data; name="blog_pic_id"
—————————–7d7da93303e6
Content-Disposition: form-data; name="pic_path"
—————————–7d7da93303e6
Content-Disposition: form-data; name="relative_optype"
publisher
—————————–7d7da93303e6–[/code]
我晕,这是什么东西啊,后来上网查了踩知道这是form表单的提交方式,不同于先前的NameValuePair的post方式
Httpclient这个包真是太强大了…..自带了这种form表单的提交方式,呵呵,代码如下:
[code]PostMethod post1 = new PostMethod("http://blog.xiaonei.com/NewEntry.do");
System.out.println(post1.getStatusLine());
StringPart title = new StringPart("title","你好123");
title.setCharSet("utf-8");//转码,以正确显示汉字
StringPart body = new StringPart("body","1234"); //在日志里写入html代码
body.setCharSet("utf-8");//转码,以正确显示汉字
StringPart blogControl = new StringPart("blogControl","99");
StringPart blog_pic_id = new StringPart("blog_pic_id","");
StringPart pic_path = new StringPart("pic_path","");
StringPart relative_optype = new StringPart("relative_optype","publisher");
StringPart[] parts = {title,body,blogControl,blog_pic_id,pic_path,relative_optype};
post1.setRequestEntity(new MultipartRequestEntity(parts,post1.getParams()));
httpClient.executeMethod(post1);
System.out.println(post1.getStatusLine());
post.releaseConnection();[/code]
成功^_^
界面如下
[img][attach]1[/attach][/img]
[img][attach]3[/attach][/img]
yuwei162
2010年11月4日 18:08
你好,最近也正在钻研这方面的东西,但是在发表日志时总是得不到正确的结果,希望能得到你的指点。我qq:723488980,谢谢了。
yuwei162
2019年4月24日 01:03
你好,最近也正在钻研这方面的东西,但是在发表日志时总是得不到正确的结果,希望能得到你的指点。我qq:723488980,谢谢了。