我们在使用String转jsonObject的时候通常使用这两种方法
net.sf.json.JSONObject bodyData = net.sf.json.JSONObject.fromObject(bodyStr);
JSONObject result = JSONObject.parseObject(resultStr);
这两种方法之所以不同一是因为导入的jar包不同,二是根据对接的代码来的如果对接的代码使用那种我们最后就跟着使用那种,使用第二种方法常用。
如果参数很多,并且body大部分都是一样的数据,而根据不同的接口会有一些细微的差异,这时我们可以利用postJson工具类来调用接口。
//获取post过来的body数据
String bodyStr = RequestUtil.getServletInputStream(request);
至于RequestUtil类封装的方法getServletInputStream如下
/**
* 获取request的body数据流
* @param request
* @return
* @throws IOException
*/
public static String getServletInputStream(HttpServletRequest request) throws IOException{
StringBuilder buffer = new StringBuilder();
BufferedReader reader=null;
try{
reader = new BufferedReader(new InputStreamReader(request.getInputStream(),request.getCharacterEncoding()));
String line=null;
while((line = reader.readLine())!=null){
buffer.append(line);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(null!=reader){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return buffer.toString();
}
调用接口的时候我们可以加一些东西导head里面,至于我们RequsetUtil得到的body数据大部分都是公用的,data不需要改变。
header根据不同的接口加一下不同的参数。
//调用接口
JSONObject result = postJson(path, postData);//path是request的body得到的,postData是我们得到的body数据加一些参数或者删除一些参数组合之后得到的请求接口的参数集
今天还碰到了java中的这个方法—startsWith()
startsWith() 方法用于检测字符串是否以指定的前缀开始。
public boolean startsWith(String prefix, int toffset)//prefix是指定前缀,toffset是指定开始查找的位置
public boolean startsWith(String prefix)
如果字符串以指定的前缀开始,则返回 true;否则返回 false。
使用接口地址映射的时候我用到了Arrays.asList()方法,该方法是将数组转化为list。注意事项。
1、该方法不适用基本数据类型(byte,short,int,long,float,double,boolean)
2、该方法将数组与列表连接起来。其中一个更新另一个自动更新。
3、不支持add和remove方法。
使用样例
List list = Arrays.asList(“哈哈,呵呵,咯咯”.split(","));