java访问get、post接口
package com.yiyu.api;
// import com.alibaba.druid.util.StringUtils;
import net.sf.json.JSONObject;
import java.io.*;
import java.net.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class testApi {
public static void main(String[] args) {
testGet();
testPost();
}
public static void testPost(){
Map<String,String> paramsMap = new HashMap<>();
paramsMap.put("name","小明");
paramsMap.put("sex","0");
Map<String,String> resultMap = new HashMap<>();
try {
URL url = new URL("post url api(假装这是一个url)");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("post");
conn.setDoOutput(true);//表示向服务器写数据
conn.setDoInput(true);//表示从服务器获取数据
conn.setUseCaches(false);//是否使用缓存
conn.setInstanceFollowRedirects(true);//是否应该自动执行 http 重定向
conn.setRequestProperty("Content-Type", "application/json");
conn.connect();
//包装成json数据
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(JSONObject.fromObject(paramsMap.toString()).toString());
out.flush();
out.close();
//读取响应
BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String tempStr=null,resultStr="";
while ((tempStr = bf.readLine()) != null){
resultStr += new String(tempStr.getBytes(),"utf-8");
}
if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
JSONObject resultJson = JSONObject.fromObject(resultStr);
if(resultJson.get("success").equals(true)){
Iterator<String> iterator = resultJson.keys();
while (iterator.hasNext()){
String key = iterator.next();
resultMap.put(key,resultJson.get(key).toString());
}
System.out.println("接口调用成功:" + resultMap.toString());
}else {
System.out.println("接口调用失败:" + resultStr);
}
}else {
System.out.println("接口调用失败:" + resultStr);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testGet(){
Map<String,String> dataMap = new HashMap<>();
try {
//使用url编码,防止中文传递乱码 解码:URLDecoder.decode( URL, "UTF-8" )
String urlStr = "https://qqlykm.cn/api/free/weather/get?key=&city=" + URLEncoder.encode( "济南", "UTF-8" );
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setUseCaches(false);
conn.setConnectTimeout(5000);
conn.setRequestProperty("charset","utf-8");
conn.setRequestProperty("content-type", "application/json");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("User-Agent", "Mozilla/4.76");//防止?403
conn.setDoOutput(false);
conn.connect();
BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
String tempStr = null,resultString="";
while ((tempStr = bf.readLine()) != null){
resultString += tempStr;
}
bf.close();
if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
JSONObject resultJson = JSONObject.fromObject(resultString);
System.out.println(resultJson);
if(resultJson.get("success").equals(true)){
Iterator<String> iterator = resultJson.keys();
while (iterator.hasNext()){
String key = iterator.next();
dataMap.put(key,resultJson.getString(key));
}
}else {
System.out.println("接口调用失败:" + resultJson);
}
}else {
System.out.println("url访问失败:" + resultString);
}
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("api调用结果:" + dataMap);
}
}