你好,我遇到了一个问题,我的应用程序运行缓慢并出现此错误:
java.net.ProtocolException: Too many redirects: 21
现在我不知道为什么它这么慢,并且出现错误,该网站唯一做的就是打开 php 文档并启动 bash 命令。 :( 所以它应该只重定向 1 次
谢谢:)
我将使用应用程序中的按钮打开灯:
public void switchLightOn(View view) {
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
CharSequence text = "An";
Toast.makeText(context, text, duration).show();
URL url11 = null;
try {
url11 = new URL("http://192.168.2.104/homepage/steuerung/steckdosen.php?id=1&status=1");
} catch (Exception e) {
e.printStackTrace();
}
new OpenUrlConnection().execute(url11);
}
public void switchLightOff(View view) {
// ausschalten
Context context = getApplicationContext();
CharSequence text = "Aus";
int duration = Toast.LENGTH_SHORT;
Toast.makeText(context, text, duration).show();
URL url10 = null;
try {
url10 = new URL("http://192.168.2.104/homepage/steuerung/steckdosen.php?id=1&status=0");
} catch (Exception e) {
e.printStackTrace();
}
new OpenUrlConnection().execute(url10);
}
private class OpenUrlConnection extends AsyncTask<URL, Void, Integer> {
public Integer doInBackground(URL... urls) {
try {
HttpURLConnection urlConnection = (HttpURLConnection) urls[0].openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader isw = new InputStreamReader(in);
} catch (Exception e) {
e.printStackTrace();
}
return 1;
}
}
编辑:
现在我正在使用:
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(String.valueOf(urls[0]));
HttpResponse response = httpclient.execute(httpget);
httpclient.getConnectionManager().shutdown();
但得到这些错误:
05-06 18:10:36.803 30939-31047/de.carsten.raspicontrol D/dalvikvm﹕ GC_FOR_ALLOC freed 239K, 2% free 17052K/17324K, paused 10ms, total 10ms
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ org.apache.http.client.ClientProtocolException
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at de.carsten.raspicontrol.RasPiControl$OpenUrlConnection.doInBackground(RasPiControl.java:103)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at de.carsten.raspicontrol.RasPiControl$OpenUrlConnection.doInBackground(RasPiControl.java:97)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to 'http://192.168.2.104/homepage/steuerung/steckdosen.php?id=1&status=0'
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.DefaultRedirectHandler.getLocationURI(DefaultRedirectHandler.java:173)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:923)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:475)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-06 18:10:38.163 30939-31047/de.carsten.raspicontrol W/System.err﹕ ... 10 more
最佳答案
您的 Android 代码完全没问题 - 是服务器出了问题。首先,检查您是否调用了正确的 URL 并传递了正确的参数。如果这些都没有问题,那么问题肯定出在服务器端。
如果您自己开发了服务器代码,请在此处发布,我们会尽力提供帮助。如果是其他人的代码,那么您必须让他们修复它,并提供 URL 和错误的详细信息。
关于java.net.协议(protocol)异常 : Too many redirects: 21 Android App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23499009/