public staticObject httpRequest(String requestUrl,
String requestMethod, String outputStr) {
Object jsonObject= null;
StringBuffer buffer= newStringBuffer();
InputStream inputStream= null;
InputStreamReader inputStreamReader= null;
BufferedReader bufferedReader= null;
OutputStream outputStream= null;try{
URL url= newURL(requestUrl);
URLConnection httpUrlConn=url
.openConnection();
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);//设置请求方式(GET/POST)
((HttpURLConnection) httpUrlConn).setRequestMethod(requestMethod);//当有数据需要提交时
if (null !=outputStr) {
outputStream=httpUrlConn.getOutputStream();//注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("utf-8"));
}//将返回的输入流转换成字符串
inputStream =httpUrlConn.getInputStream();
inputStreamReader= newInputStreamReader(inputStream);
bufferedReader= newBufferedReader(inputStreamReader);
String str= "";while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
httpUrlConn.connect();//处理乱码--楼主最后使用的解决方式
String result = new String(buffer.toString().getBytes(),"utf-8");
result= URLDecoder.decode(result,"utf-8");//去掉首尾“
if(StringUtil.isNotEmpty(result)&&result.startsWith("\"")){
result= result.replaceFirst("\"", "");
result= result.substring(0, result.lastIndexOf("\""));
}
//支持返回类型为map和listif(StringUtil.isNotEmpty(result)&&result.startsWith("{")){
jsonObject=JSONObject.fromObject(result);
}else{
jsonObject=JSONArray.fromObject(result);
}
}catch(ConnectException ce) {
ce.printStackTrace();
System.out.print("连接超时");
}catch(Exception e) {
e.printStackTrace();
System.out.print("http请求出错");
}finally{try{if(null!=bufferedReader){
bufferedReader.close();//释放资源
}
}catch(IOException e) {
e.printStackTrace();
}try{if(null!=inputStreamReader){
inputStreamReader.close();//释放资源
}
}catch(IOException e) {
e.printStackTrace();
}try{if(null!=inputStream){
inputStream.close();//释放资源
}
}catch(IOException e) {
e.printStackTrace();
}try{if(null!=outputStream){
outputStream.close();//释放资源
}
}catch(IOException e) {
e.printStackTrace();
}
}returnjsonObject;
}