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/122
**/
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://japi.juhe.cn/askanswer/getTypes";//请求接口地址
params.put("key",APPKEY);//应用APPKEY
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://japi.juhe.cn/askanswer/getCat";//请求接口地址
params.put("key",APPKEY);//APP Key
params.put("cat","");//接口类型序号,默认为1(脑筋急转弯)
params.put("start","");//起始位置,默认为0
params.put("count","");//返回条数,默认为20
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://japi.juhe.cn/askanswer/answer";//请求接口地址
params.put("key",APPKEY);//APP Key
params.put("id","");//题目id
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();
}
}