java.net.协议(protocol)异常 : Too many redirects: 21 Android App

标签 java android redirect

你好,我遇到了一个问题,我的应用程序运行缓慢并出现此错误:

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/

相关文章:

java - 如何修复 arrayindexoutofboundsException 错误?

java - 为什么这个 SpriteBatch 在 C# 中工作而不在 Java 中工作?

android - Dagger2 范围和 Activity 生命周期

android - 为特定应用开启miui省电

jsp - 处理 JSP 页面中的 response.redirect 错误

Apache 重写 : Always use HTTPS (how to add an exception)

javascript - 在使用 window.location 重定向后的弹出窗口中,window.close 变为未定义

java - 将动态二维数组插入 TableView

java - 尝试显示所有可能的配料组合

安卓浏览器下载管理器