import java.io.BufferedReader; |
import java.io.DataOutputStream; |
import java.io.IOException; |
import java.io.InputStream; |
import java.io.InputStreamReader; |
import java.io.UnsupportedEncodingException; |
import java.net.HttpURLConnection; |
import java.net.URL; |
import java.net.URLEncoder; |
import java.util.HashMap; |
import java.util.Map; |
|
import net.sf.json.JSONObject; |
|
/** |
*新华字典调用示例代码 - 聚合数据 |
*在线接口文档:http://www.juhe.cn/docs/156 |
**/ |
|
public class JuheDemo { |
public static final String DEF_CHATSET = "UTF-8" ; |
public static final int DEF_CONN_TIMEOUT = 30000 ; |
public static final int DEF_READ_TIMEOUT = 30000 ; |
public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36" ; |
|
//配置您申请的KEY |
public static final String APPKEY = "*************************" ; |
|
//1.根据汉字查询字典 |
public static void getRequest1(){ |
String result = null ; |
String url = "http://v.juhe.cn/xhzd/query" ;//请求接口地址 |
Map params = new HashMap(); //请求参数 |
params.put( "word" , "" ); //填写需要查询的汉字,UTF8 urlencode编码 |
params.put( "key" ,APPKEY); //应用APPKEY(应用详细页查询) |
params.put( "dtype" , "" ); //返回数据的格式,xml或json,默认json |
|
try { |
result =net(url, params, "GET" ); |
JSONObject object = JSONObject.fromObject(result); |
if (object.getInt( "error_code" )== 0 ){ |
System.out.println(object.get( "result" )); |
} else { |
System.out.println(object.get( "error_code" )+ ":" +object.get( "reason" )); |
} |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
|
//2.汉字部首列表 |
public static void getRequest2(){ |
String result = null ; |
String url = "http://v.juhe.cn/xhzd/bushou" ;//请求接口地址 |
Map params = new HashMap(); //请求参数 |
params.put( "key" ,APPKEY); //应用APPKEY(应用详细页查询) |
params.put( "dtype" , "" ); //返回数据的格式,xml或json,默认json |
|
try { |
result =net(url, params, "GET" ); |
JSONObject object = JSONObject.fromObject(result); |
if (object.getInt( "error_code" )== 0 ){ |
System.out.println(object.get( "result" )); |
} else { |
System.out.println(object.get( "error_code" )+ ":" +object.get( "reason" )); |
} |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
|
//3.汉字拼音列表 |
public static void getRequest3(){ |
String result = null ; |
String url = "http://v.juhe.cn/xhzd/pinyin" ;//请求接口地址 |
Map params = new HashMap(); //请求参数 |
params.put( "key" ,APPKEY); //应用APPKEY(应用详细页查询) |
params.put( "dtype" , "" ); //返回数据的格式,xml或json,默认json |
|
try { |
result =net(url, params, "GET" ); |
JSONObject object = JSONObject.fromObject(result); |
if (object.getInt( "error_code" )== 0 ){ |
System.out.println(object.get( "result" )); |
} else { |
System.out.println(object.get( "error_code" )+ ":" +object.get( "reason" )); |
} |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
|
//4.根据部首查询汉字 |
public static void getRequest4(){ |
String result = null ; |
String url = "http://v.juhe.cn/xhzd/querybs" ;//请求接口地址 |
Map params = new HashMap(); //请求参数 |
params.put( "word" , "" ); //填写需要查询的汉字部首,UTF8 urlencode编码 |
params.put( "key" ,APPKEY); //应用APPKEY(应用详细页查询) |
params.put( "dtype" , "" ); //返回数据的格式,xml或json,默认json |
params.put( "page" , "" ); //页数,默认1 |
params.put( "pageszie" , "" ); //每页返回条数,默认10 最大50 |
params.put( "isjijie" , "" ); //是否显示简解,1显示 0不显示 默认1 |
params.put( "isxiangjie" , "" ); //是否显示详解,1显示 0不显示 默认1 |
|
try { |
result =net(url, params, "GET" ); |
JSONObject object = JSONObject.fromObject(result); |
if (object.getInt( "error_code" )== 0 ){ |
System.out.println(object.get( "result" )); |
} else { |
System.out.println(object.get( "error_code" )+ ":" +object.get( "reason" )); |
} |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
|
//5.根据拼音查询汉字 |
public static void getRequest5(){ |
String result = null ; |
String url = "http://v.juhe.cn/xhzd/querypy" ;//请求接口地址 |
Map params = new HashMap(); //请求参数 |
params.put( "word" , "" ); //填写需要查询的拼音 |
params.put( "key" ,APPKEY); //应用APPKEY(应用详细页查询) |
params.put( "dtype" , "" ); //返回数据的格式,xml或json,默认json |
params.put( "page" , "" ); //页数,默认1 |
params.put( "pageszie" , "" ); //每页返回条数,默认10 最大50 |
params.put( "isjijie" , "" ); //是否显示简解,1显示 0不显示 默认1 |
params.put( "isxiangjie" , "" ); //是否显示详解,1显示 0不显示 默认1 |
|
try { |
result =net(url, params, "GET" ); |
JSONObject object = JSONObject.fromObject(result); |
if (object.getInt( "error_code" )== 0 ){ |
System.out.println(object.get( "result" )); |
} else { |
System.out.println(object.get( "error_code" )+ ":" +object.get( "reason" )); |
} |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
|
//6.根据id查询汉字完整信息 |
public static void getRequest6(){ |
String result = null ; |
String url = "http://v.juhe.cn/xhzd/queryid" ;//请求接口地址 |
Map params = new HashMap(); //请求参数 |
params.put( "word" , "" ); //填写需要查询的汉字id |
params.put( "key" ,APPKEY); //应用APPKEY(应用详细页查询) |
params.put( "dtype" , "" ); //返回数据的格式,xml或json,默认json |
|
try { |
result =net(url, params, "GET" ); |
JSONObject object = JSONObject.fromObject(result); |
if (object.getInt( "error_code" )== 0 ){ |
System.out.println(object.get( "result" )); |
} else { |
System.out.println(object.get( "error_code" )+ ":" +object.get( "reason" )); |
} |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
|
|
|
public static void main(String[] args) { |
|
} |
|
/** |
* |
* @param strUrl 请求地址 |
* @param params 请求参数 |
* @param method 请求方法 |
* @return 网络请求字符串 |
* @throws Exception |
*/ |
public static String net(String strUrl, Map params,String method) throws Exception { |
HttpURLConnection conn = null ; |
BufferedReader reader = null ; |
String rs = null ; |
try { |
StringBuffer sb = new StringBuffer(); |
if (method== null || method.equals( "GET" )){ |
strUrl = strUrl+ "?" +urlencode(params); |
} |
URL url = new URL(strUrl); |
conn = (HttpURLConnection) url.openConnection(); |
if (method== null || method.equals( "GET" )){ |
conn.setRequestMethod( "GET" ); |
} else { |
conn.setRequestMethod( "POST" ); |
conn.setDoOutput( true ); |
} |
conn.setRequestProperty( "User-agent" , userAgent); |
conn.setUseCaches( false ); |
conn.setConnectTimeout(DEF_CONN_TIMEOUT); |
conn.setReadTimeout(DEF_READ_TIMEOUT); |
conn.setInstanceFollowRedirects( false ); |
conn.connect(); |
if (params!= null && method.equals( "POST" )) { |
try { |
DataOutputStream out = new DataOutputStream(conn.getOutputStream()); |
out.writeBytes(urlencode(params)); |
} catch (Exception e) { |
// TODO: handle exception |
} |
} |
InputStream is = conn.getInputStream(); |
reader = new BufferedReader( new InputStreamReader(is, DEF_CHATSET)); |
String strRead = null ; |
while ((strRead = reader.readLine()) != null ) { |
sb.append(strRead); |
} |
rs = sb.toString(); |
} catch (IOException e) { |
e.printStackTrace(); |
} finally { |
if (reader != null ) { |
reader.close(); |
} |
if (conn != null ) { |
conn.disconnect(); |
} |
} |
return rs; |
} |
|
//将map型转为请求参数型 |
public static String urlencode(Map<String,Object>data) { |
StringBuilder sb = new StringBuilder(); |
for (Map.Entry i : data.entrySet()) { |
try { |
sb.append(i.getKey()).append( "=" ).append(URLEncoder.encode(i.getValue()+ "" , "UTF-8" )).append( "&" ); |
} catch (UnsupportedEncodingException e) { |
e.printStackTrace(); |
} |
} |
return sb.toString(); |
} |
} |
初级程序员
by: 微微 发表于:2016-08-22 18:03:08 顶(0) | 踩(0) 回复
回复评论