Android 使用HTTP Get方式提交数据,出现response code == 400

skiffloveblue 2012-07-04 10:15:21
使用了调试方式,打算让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/),但是我看过之后也没看懂该怎么改,有没有谁能完整地解释一下应该怎么解决这个问题的,非常感谢。
...全文
465 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
skiffloveblue 2012-07-04
  • 打赏
  • 举报
回复
感谢,已经折腾两天了,由于是远程桌面连接的,无法更改系统配置,导致很多方法尝试不了,现在非常痛苦地纠结着。
yangkai655 2012-07-04
  • 打赏
  • 举报
回复
呵呵!帮你问问我们的老师!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧