private class LoginThread extends Thread {
@Override
public void run() {
Looper.prepare();
String httpUrl = "http://192.168.1.102:8080/StudyCase1/user/login_android";
HttpPost httpRequest = new HttpPost(httpUrl);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", str_loginName));
params.add(new BasicNameValuePair("password", str_loginPassword));
try {
httpRequest.setEntity(new UrlEncodedFormEntity(params,
HTTP.UTF_8));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
HttpClient httpclient = new DefaultHttpClient();
Log.e("aaa1", httpRequest + "");
Log.e("aaa2", httpclient + "");
HttpResponse httpResponse = null;
try {
httpResponse = httpclient.execute(httpRequest);
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
Log.e("aaa3", httpResponse + "");
if (httpResponse.getStatusLine().getStatusCode() ==
HttpStatus.SC_OK) {
String strResult = null;
try {
strResult = EntityUtils.toString(httpResponse.getEntity());
} catch (IOException e) {
e.printStackTrace();
}
if (strResult.indexOf("success") != -1) {
Toast.makeText(Login.this, "登陆成功",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(Login.this, "登陆失败",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(Login.this, "请求错误", Toast.LENGTH_SHORT).show();
}
上面我的程序,我用Log.e()打印发现在模拟器上运行时,httpRequest 、httpclient 、httpResponse 不为空,而在手机上运行时发现httpRequest 、httpclient 不为空,但是httpResponse 为空,一时找不到原因,请各位大师指教???
11 个解决方案
#1
模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了
#2
手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变
#3
检查一下手机和你的电脑是不是连接到同一个局域网内。
#4
手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!
#5
是处于统一wifi下,而且是在统一网段,每次开机我都会重置ip,不知道为什么访问失败。
#6
你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。
#7
检查一下手机和你的电脑是不是连接到同一个局域网内。
是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。
#8
说实话,我以前做一款通讯软件的时候,遇到过使用 httppost 有时候第一次无法正常访问的情况,于是我就使用了一个方法
先设置为 httpclient 设置超时时间,然后访问服务器,超时之后,判断 Exception 再次访问,就好了,可是设置一个最大的重连次数,避免无限死循环,但是具体原因不明
先设置为 httpclient 设置超时时间,然后访问服务器,超时之后,判断 Exception 再次访问,就好了,可是设置一个最大的重连次数,避免无限死循环,但是具体原因不明
#9
检查一下手机和你的电脑是不是连接到同一个局域网内。
是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。
你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。
#10
看看这篇 http://523436424.blog.51cto.com/8575872/1548436 希望有用。。
#11
检查一下手机和你的电脑是不是连接到同一个局域网内。
是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。
你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。
在手机上调试,手机程序自动关闭,在logcat中显示一下错误
我的版本不太兼容,我不知道是不是这个的问题导致的我手机端不能访问,每次打开eclipse都会出现下面的错误
#1
模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了
#2
手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变
#3
检查一下手机和你的电脑是不是连接到同一个局域网内。
#4
模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了
手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!
#5
手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变
是处于统一wifi下,而且是在统一网段,每次开机我都会重置ip,不知道为什么访问失败。
#6
模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了
手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!
你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。
#7
检查一下手机和你的电脑是不是连接到同一个局域网内。
是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。
#8
说实话,我以前做一款通讯软件的时候,遇到过使用 httppost 有时候第一次无法正常访问的情况,于是我就使用了一个方法
先设置为 httpclient 设置超时时间,然后访问服务器,超时之后,判断 Exception 再次访问,就好了,可是设置一个最大的重连次数,避免无限死循环,但是具体原因不明
先设置为 httpclient 设置超时时间,然后访问服务器,超时之后,判断 Exception 再次访问,就好了,可是设置一个最大的重连次数,避免无限死循环,但是具体原因不明
#9
检查一下手机和你的电脑是不是连接到同一个局域网内。
是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。
你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。
#10
看看这篇 http://523436424.blog.51cto.com/8575872/1548436 希望有用。。
#11
检查一下手机和你的电脑是不是连接到同一个局域网内。
是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。
你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。
在手机上调试,手机程序自动关闭,在logcat中显示一下错误
我的版本不太兼容,我不知道是不是这个的问题导致的我手机端不能访问,每次打开eclipse都会出现下面的错误