java 奇数 乱码,模拟奇数乱码请求问题

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值