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 url
="http://v.juhe.cn/xhzd/query";//请求接口地址
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"));
}
e.printStackTrace();
}
}
//2.汉字部首列表
public static void getRequest2(){
String url
="http://v.juhe.cn/xhzd/bushou";//请求接口地址
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"));
}
e.printStackTrace();
}
}
//3.汉字拼音列表
public static void getRequest3(){
String url
="http://v.juhe.cn/xhzd/pinyin";//请求接口地址
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"));
}
e.printStackTrace();
}
}
//4.根据部首查询汉字
public static void getRequest4(){
String url
="http://v.juhe.cn/xhzd/querybs";//请求接口地址
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"));
}
e.printStackTrace();
}
}
//5.根据拼音查询汉字
public static void getRequest5(){
String url
="http://v.juhe.cn/xhzd/querypy";//请求接口地址
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"));
}
e.printStackTrace();
}
}
//6.根据id查询汉字完整信息
public static void getRequest6(){
String url
="http://v.juhe.cn/xhzd/queryid";//请求接口地址
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"));
}
e.printStackTrace();
}
}
public static void main
(String[] args
) {
}
/**
*
* @param strUrl 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 网络请求字符串
* @throws Exception
*/
try {
if(method==null || method.equals("GET")){
strUrl = strUrl+"?"+urlencode(params);
}
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 {
out.writeBytes(urlencode(params));
// TODO: handle exception
}
}
while ((strRead = reader.readLine()) != null) {
sb.append(strRead);
}
rs = sb.toString();
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
}
return rs;
}
//将map型转为请求参数型
StringBuilder sb = new StringBuilder();
try {
sb.
append(i.
getKey()).
append("=").
append(URLEncoder.
encode(i.
getValue()+"",
"UTF-8")).
append("&");
e.printStackTrace();
}
}
return sb.toString();
}
}