首先就是随便给了一个api:
http://10.10.60.150:6001/api/v1/*******
用postman可以先测试一下能否通过
ok,这个借口是直接可以用的。
创建一个类
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
*
* @author 作者 Bowen
* @data 创建时间:2018年10月22日 下午5:26:09
* @ClassName RestUtil
* @Description
*
*/
public class RestUtil {
public String test(String url, String query) throws Exception {
URL restURL = new URL(url);
/*
* 此处的urlConnection对象实际上是根据URL的请求协议(此处是http)生成的URLConnection类
* 的子类HttpURLConnection
*/
HttpURLConnection conn = (HttpURLConnection) restURL.openConnection();
// 请求方式
conn.setRequestMethod("GET");
// 设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true);
conn.setDoOutput(false);
// allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。
conn.setAllowUserInteraction(false);
conn.setRequestProperty("Accept","application/json");
if (null != query) {
PrintStream ps = new PrintStream(conn.getOutputStream());
ps.print(query);
ps.close();
}
BufferedReader bReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line, resultStr = "";
while (null != (line = bReader.readLine())) {
resultStr += line;
}
bReader.close();
return resultStr;
}
public static void main(String[] args) {
try {
RestUtil restUtil = new RestUtil();
String resultString = restUtil.test(
"http://10.10.60.150:6001/api/v1/*******", "username=abc&password=123456");
System.out.println("hahah " + resultString);
} catch (Exception e) {
// TODO: handle exception
System.out.print(e.getMessage());
}
}
}
右键run,搞定。
------------------------下面这段是借鉴学习笔记----------------------------
把一个map的键值对拼接成“参数=值&参数=值”即“username=angusbao&password=123456”这种形式方便传递,尤其是在接口调用的时候,这种方式使用的更加普遍,比如http请求的get方式。
/**
* 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串
* @param params 需要排序并参与字符拼接的参数组
* @return 拼接后字符串
* @throws UnsupportedEncodingException
*/
public static String createLinkStringByGet(Map<String, String> params) throws UnsupportedEncodingException {
List<String> keys = new ArrayList<String>(params.keySet());
Collections.sort(keys);
String prestr = "";
for (int i = 0; i < keys.size(); i++) {
String key = keys.get(i);
String value = params.get(key);
value = URLEncoder.encode(value, "UTF-8");
if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符
prestr = prestr + key + "=" + value;
} else {
prestr = prestr + key + "=" + value + "&";
}
}
return prestr;
}
public static void main(String[] args) throws UnsupportedEncodingException {
Map<String,String> map= new HashMap<String,String>();
map.put("1", "hello");
map.put("2", "world");
System.out.println(createLinkStringByGet(map));
}
结果为:1=hello&2=world
如果是数组中包含的集合可以用JSONArray
String jsonMessage = "[{'num':'成绩', '外语':88, '历史':65, '地理':99, 'object':{'aaa':'1111','bbb':'2222','cccc':'3333'}}," +
"{'num':'兴趣', '外语':28, '历史':45, '地理':19, 'object':{'aaa':'11a11','bbb':'2222','cccc':'3333'}}," +
"{'num':'爱好', '外语':48, '历史':62, '地理':39, 'object':{'aaa':'11c11','bbb':'2222','cccc':'3333'}}]";
JSONArray myJsonArray = JSONArray.fromObject(jsonMessage);
System.out.println(myJsonArray);
注:此博文纯属个人笔记收藏,仅供学习,如有雷同纯属巧合