无法从设备访问服务器,在模拟器中工作

时间:2011-04-13 04:30:21

标签: android

似乎每个人都有从模拟器访问本地机器或互联网等的问题。这一切对我有用。现在我在我的家庭服务器上安装了我的WCF服务,打开了端口,我可以使用浏览器浏览。

我在模拟器中更改了URL,指向“真实”服务器并且工作正常。现在,我在设备上安装了app,它超时连接到服务器(10秒)。我错过了什么?

服务器是带有.NET WCF REST服务的IIS7.5。设备连接到3G,我可以从设备上的Web浏览器浏览我自己的站点,但在代码中它失败。代码看起来像这样,我的网址如“http:// domain:8080 / mobile / auth”

编辑:尝试使用另一部手机,它可以工作!有什么问题?我的手机是Nexus S 2.3,我的目标2.2和我的模拟器2.2和我的另一部手机(有效)2.2

此外,TMobile上的一部手机和Sprint上的另一部手机。那是个奇怪的问题吗?

编辑2: 一些谷歌搜索..它可能与T-Mobile阻止端口8080有关。我特意发布,当我通过浏览器浏览它确实GET,所以也许我的问题在那里。我明天会试试另一款T-Mobile手机。

HttpParams httpParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT);
        HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT);

        HttpClient client = new DefaultHttpClient(httpParams);

        HttpPost request = new HttpPost(url);

        try
        {
            StringEntity entity = new StringEntity(requestData);
            entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            request.setEntity(entity);
            ResponseHandler<String> handler = new BasicResponseHandler();
            returnData = client.execute(request, handler);
        }
        catch (Throwable e)
        {
            String s = e.getMessage();
            //TODO: Log exception on device
        }

2 个答案:

答案 0 :(得分:1)

当然,您似乎在那里回答了自己的问题:

//TODO: Log exception on device

如果您没有收到异常,那么这听起来非常像DNS问题。尝试通过wifi连接到本地网络,看看是否可以解决问题。

答案 1 :(得分:1)

您是否验证过您的设备是否具有互联网连接?我知道这听起来很傻,但是今天我的Nexus S运行2.3.3时遇到了一些真正的问题。

尝试打开浏览器并导航到非缓存页面。