似乎每个人都有从模拟器访问本地机器或互联网等的问题。这一切对我有用。现在我在我的家庭服务器上安装了我的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
}
答案 0 :(得分:1)
当然,您似乎在那里回答了自己的问题:
//TODO: Log exception on device
如果您没有收到异常,那么这听起来非常像DNS问题。尝试通过wifi连接到本地网络,看看是否可以解决问题。
答案 1 :(得分:1)
您是否验证过您的设备是否具有互联网连接?我知道这听起来很傻,但是今天我的Nexus S运行2.3.3时遇到了一些真正的问题。
尝试打开浏览器并导航到非缓存页面。