1.
HttpClient httpClient=new HttpClient(); httpClient.getParams().setContentCharset("utf-8"); PostMethod postMetho=new PostMethod("****//要提交的action"); NameValuePair[] pairs=new NameValuePair[]{ new NameValuePair("advancedvalue1","密码"),new NameValuePair("advancedfield1","主题"),new NameValuePair("advancedfrequency1",""),new NameValuePair("bCurYearTempDB","1"), new NameValuePair("yearstart","1999"),new NameValuePair("yearend","2010"),new NameValuePair("PublicationDate",""), new NameValuePair("drpDataBaseJump","/KNS50/Navigator.aspx?ID=1"), new NameValuePair("selectbox","A"),//选择理工A类 new NameValuePair("selectbox","B"),new NameValuePair("RecordsPerPage","20"),new NameValuePair("order","dec"), new NameValuePair("searchmatch","0"),new NameValuePair("SearchRange","All"),new NameValuePair("ID","1"),new NameValuePair("hdnIsAll","false"), new NameValuePair("NaviField","专题子栏目代码"),new NameValuePair("NaviDatabaseName","ZJCLS"),new NameValuePair("systemno",""), new NameValuePair("hdnFathorCode","sysAll"),new NameValuePair("strNavigatorValue",",A,B,C,D,E,F,G,H,I,J"),new NameValuePair("strNavigatorName",",理工A(数学物理力学天地生),理工B(化学化工冶金环境矿业),理工C(机电航空交通水利建筑能源),农业,医药卫生,文史哲,政治军事与法律,教育与社会科学综合,电子技术及信息科学,经济与管理"), new NameValuePair("singleleafcode",""),new NameValuePair("searchAttachCondition",""),new NameValuePair("SearchQueryID",""), new NameValuePair("SearchFieldRelationDirectory","主题/[],篇名/[],题名/[],作者/[SYS_Author_Relevant],关键词[],第一责任人/[SYS_Author_Relevant],机构/[SYS_Organization_Relevant],摘要/[],引文/[],基金/[SYS_Fund_Relevant],全文/[]"),new NameValuePair("updateTempDB",""),new NameValuePair("bCurYearTempDB","1"), new NameValuePair("fieldnowordfrequency","关键词,作者,第一责任人,机构,中文刊名&英文刊名,年',期',基金,分类号',ISSN',CN',DOI'"),new NameValuePair("fieldtips","篇名/[在文献标题中检索。对该检索项的检索是按词进行的,请尽可能输入完整的词,以避免漏检。],关键词/[检索文献的关键词中满足检索条件的文献。对该检索项的检索是按词进行的,请尽可能输入完整的词,以避免漏检。],第一责任人/[请选择检索项并指定相应的检索词,选择排序方式、匹配模式、文献时间等限定条件,然后点击“检索”。],作者/[可输入作者完整姓名,或只输入连续的一部分。],机构/[可输入完整的机构名称,或只输入连续的一部分。],中文摘要/[对该检索项的检索是按词进行的,请尽可能输入完整的词,以避免漏检。],引文/[请选择检索项并指定相应的检索词,选择排序方式、匹配模式、文献时间等限定条件,然后点击“检索”。],全文/请选择检索项并指定相应的检索词,选择排序方式、匹配模式、文献时间等限定条件,然后点击“检索”。],基金/[检索受满足条件的基金资助的文献。],中文刊名/[请输入部分或全部刊名。],ISSN/[请输入完整的ISSN号。],年/[输入四位数字的年份。],期/[输入期刊的期号,如果不足两位数字,请在前面补“0”,如“08”。],主题/[主题包括篇名、关键词、中文摘要。可检索出这三项中任一项或多项满足指定检索条件的文献。对主题是按词检索的,请尽可能输入完整的词,以避免漏检。]"), new NameValuePair("TableType","PY"),new NameValuePair("display","chinese"),new NameValuePair("encode","gb"),new NameValuePair("TablePrefix","CJFD"), new NameValuePair("View","中国期刊全文数据库"),new NameValuePair("yearFieldName","年"),new NameValuePair("userright",""),new NameValuePair("VarNum","1"), }; postMetho.setRequestBody(pairs); httpClient.executeMethod(postMetho); System.out.println(postMetho.getResponseBodyAsString()); postMetho.releaseConnection();2.第二个是在http://search.cnki.net/Default.aspx的首页检索。
看了下源码,关键在它的js文件中提交。而且用了URLEncoder进行了编码的转换。
主要用了String test = java.net.URLEncoder.encode("信息","utf-8");而且分析了下搜索的类型页面,,在用httpclient就可以了。比上面的容易实现些。