gpt4 book ai didi

java - Android/Apache HTTPGET 将不起作用,但在浏览器中它可以

转载 作者:行者123 更新时间:2023-11-28 22:02:20 26 4
gpt4 key购买 nike

我有一个在 tomcat 上运行的简单 servlet。它实现了一个简单的 doGet() 并在我从网络浏览器调用它时工作,例如:

http://192.168.1.140:8080/Application/doTask?id=0&param=something

但是,我试图从 Android 应用程序调用它,但除了挂起之外,我什么也没得到。我在 AsyncTask 中运行它,所以它不是真正的挂起,但我在“SendServerThread”中有这个

public SendServerThread(String state, int isHalfway) {
mState = state;
mIsHalfWay = mIsHalfWay;

mRestClient = new RestClient();
}

@Override
protected String doInBackground(String... params) {
HttpClient httpClient = new DefaultHttpClient();
String response = "";
try {
URI urlString = new URI(PI_ADDRESS + "/Application/API?id=0&setState=" + mState + "&percentage=" + mIsHalfWay);
HttpGet httpGetRequest = new HttpGet();
httpGetRequest.setURI(urlString);

HttpResponse httpResponse = httpClient.execute(httpGetRequest);

String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
while ((line = br.readLine()) != null) {
response+=line;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
}

return response;
}

我验证了它调用的 URL 是正确的,但我什么也没得到。没有反应。我有互联网许可。

我在 UI 中这样调用它:

            new SendServerThread(state, isHalfWay)
{
@Override public void onPostExecute(String result)
{
unlockUI();
}
}.execute("");

它通过 HttpGet,但线程从未得到响应。如果我进入手机上的网络浏览器,我会得到结果。但是从应用程序中我什么也没得到 - 线程挂起。

非常感谢任何想法,无法弄清楚我做错了什么

最佳答案

我打开了飞行模式,然后打开了 WiFi,所以所有的移动数据都被禁用了,然后就可以了:(

关于java - Android/Apache HTTPGET 将不起作用,但在浏览器中它可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29981556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com