我的android小程序可以再模拟器上运行,到手机上运行出问题

时间:2021-01-22 18:58:18

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了

#2


手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变

#3


检查一下手机和你的电脑是不是连接到同一个局域网内。

#4


引用 1 楼 sirius93 的回复:
模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了

手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!

#5


引用 2 楼 kifile 的回复:
手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变

是处于统一wifi下,而且是在统一网段,每次开机我都会重置ip,不知道为什么访问失败。

#6


引用 4 楼 u012350993 的回复:
Quote: 引用 1 楼 sirius93 的回复:

模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了

手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!

你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。

#7


引用 3 楼 svenwang 的回复:
检查一下手机和你的电脑是不是连接到同一个局域网内。

是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。

#8


说实话,我以前做一款通讯软件的时候,遇到过使用 httppost 有时候第一次无法正常访问的情况,于是我就使用了一个方法

先设置为 httpclient 设置超时时间,然后访问服务器,超时之后,判断 Exception 再次访问,就好了,可是设置一个最大的重连次数,避免无限死循环,但是具体原因不明

#9


引用 7 楼 u012350993 的回复:
Quote: 引用 3 楼 svenwang 的回复:

检查一下手机和你的电脑是不是连接到同一个局域网内。

是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。

你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。

#10


看看这篇  http://523436424.blog.51cto.com/8575872/1548436 希望有用。。

#11


引用 9 楼 svenwang 的回复:
Quote: 引用 7 楼 u012350993 的回复:

Quote: 引用 3 楼 svenwang 的回复:

检查一下手机和你的电脑是不是连接到同一个局域网内。

是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。

你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。

在手机上调试,手机程序自动关闭,在logcat中显示一下错误
我的android小程序可以再模拟器上运行,到手机上运行出问题
我的版本不太兼容,我不知道是不是这个的问题导致的我手机端不能访问,每次打开eclipse都会出现下面的错误 我的android小程序可以再模拟器上运行,到手机上运行出问题

#1


模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了

#2


手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变

#3


检查一下手机和你的电脑是不是连接到同一个局域网内。

#4


引用 1 楼 sirius93 的回复:
模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了

手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!

#5


引用 2 楼 kifile 的回复:
手机和电脑是否处于同一 wifi 环境下,电脑的本地 ip 地址是否为192.168.1.102,可能开关机后 ip 地址发生改变

是处于统一wifi下,而且是在统一网段,每次开机我都会重置ip,不知道为什么访问失败。

#6


引用 4 楼 u012350993 的回复:
Quote: 引用 1 楼 sirius93 的回复:

模拟器运行在你电脑上,当然可以连接到你电脑上的本地服务器
手机又不是在你电脑上,当然连不到你的本地服务器,也就没response了

手机和电脑是处于同一 wifi 环境可以对服务器进行访问的,请求成功服务器有response!!

你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。

#7


引用 3 楼 svenwang 的回复:
检查一下手机和你的电脑是不是连接到同一个局域网内。

是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。

#8


说实话,我以前做一款通讯软件的时候,遇到过使用 httppost 有时候第一次无法正常访问的情况,于是我就使用了一个方法

先设置为 httpclient 设置超时时间,然后访问服务器,超时之后,判断 Exception 再次访问,就好了,可是设置一个最大的重连次数,避免无限死循环,但是具体原因不明

#9


引用 7 楼 u012350993 的回复:
Quote: 引用 3 楼 svenwang 的回复:

检查一下手机和你的电脑是不是连接到同一个局域网内。

是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。

你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。

#10


看看这篇  http://523436424.blog.51cto.com/8575872/1548436 希望有用。。

#11


引用 9 楼 svenwang 的回复:
Quote: 引用 7 楼 u012350993 的回复:

Quote: 引用 3 楼 svenwang 的回复:

检查一下手机和你的电脑是不是连接到同一个局域网内。

是一个局域网,可能别的地方出问题了,就是想不通为什么会得到空值。

你的代码里catch里http异常以后没有return,还是继续执行后面代码,response当然为null。
调试一下看看异常的具体信息。

在手机上调试,手机程序自动关闭,在logcat中显示一下错误
我的android小程序可以再模拟器上运行,到手机上运行出问题
我的版本不太兼容,我不知道是不是这个的问题导致的我手机端不能访问,每次打开eclipse都会出现下面的错误 我的android小程序可以再模拟器上运行,到手机上运行出问题