使用了调试方式,打算让android通过http的url传一个imei给web端,struts相应处理请求数据。下面是sendGetRequest源码:Java codepublic class HttpRequest {
// 利用get方法在url后添加imei参数传递给web端,同时web端将匹配imei的命令cmd通过response方法返回
public static String sendGetRequest(String path, Map<String, String> params, String enc) throws Exception{
StringBuilder sb = new StringBuilder(path);
sb.append('?');
// ?imei=
//把Map中的数据迭代附加到StringBuilder中
for(Map.Entry<String, String> entry : params.entrySet()){
//URLEncoder.encode对字符串中文进行编码,防止乱码
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
//去掉最后一个字符&
sb.deleteCharAt(sb.length()-1);
//把组拼完的路径传到URL对象
URL url = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求方式,GET要大写
conn.setRequestMethod("GET");
//设置过期时间为5秒
conn.setConnectTimeout(5 * 1000);
conn.getErrorStream();
//"200"代表请求成功
if(conn.getResponseCode()==200){
return sb.toString();
}
return null;
}
}
调试结果是在if(conn.getResponseCode()==200)时ResponseCode==400,上网找了多个方法都无效,没使用代理,用的远程桌面连接编写程序,系统配置无权限改,求急救。网上有说是tomcat的编码方式不是UTF-8而是ISO88591-1,需要用过滤器实现编码方式切换(原文在这儿:http://blog.163.com/hf_savior/blog/static/1849320312011323113551496/),但是我看过之后也没看懂该怎么改,有没有谁能完整地解释一下应该怎么解决这个问题的,非常感谢。
// 利用get方法在url后添加imei参数传递给web端,同时web端将匹配imei的命令cmd通过response方法返回
public static String sendGetRequest(String path, Map<String, String> params, String enc) throws Exception{
StringBuilder sb = new StringBuilder(path);
sb.append('?');
// ?imei=
//把Map中的数据迭代附加到StringBuilder中
for(Map.Entry<String, String> entry : params.entrySet()){
//URLEncoder.encode对字符串中文进行编码,防止乱码
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
//去掉最后一个字符&
sb.deleteCharAt(sb.length()-1);
//把组拼完的路径传到URL对象
URL url = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求方式,GET要大写
conn.setRequestMethod("GET");
//设置过期时间为5秒
conn.setConnectTimeout(5 * 1000);
conn.getErrorStream();
//"200"代表请求成功
if(conn.getResponseCode()==200){
return sb.toString();
}
return null;
}
}
调试结果是在if(conn.getResponseCode()==200)时ResponseCode==400,上网找了多个方法都无效,没使用代理,用的远程桌面连接编写程序,系统配置无权限改,求急救。网上有说是tomcat的编码方式不是UTF-8而是ISO88591-1,需要用过滤器实现编码方式切换(原文在这儿:http://blog.163.com/hf_savior/blog/static/1849320312011323113551496/),但是我看过之后也没看懂该怎么改,有没有谁能完整地解释一下应该怎么解决这个问题的,非常感谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货