java.net.ProtocolException:重定向过多:21 Android应用程序 [英] java.net.ProtocolException: Too many redirects: 21 Android App

查看:4962
本文介绍了java.net.ProtocolException:重定向过多:21 Android应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我得到了我的应用程序是如此之慢与此错误的问题:

  java.net.ProtocolException:重定向过多:21
 

现在我不知道为什么它是洙缓慢的,并得到了错误,该网站做的唯一的事情打开PHP文件,并开始bash命令。 :(所以它应该重定向只有1次

感谢:)

我会切换灯光上的应用程序的按钮:

 公共无效switchLightOn(查看视图){
    上下文的背景下= getApplicationContext();
    INT持续时间= Toast.LENGTH_SHORT;
    CharSequence的文字=安;
    Toast.makeText(上下文,文本,持续时间).show();

    URL url11 = NULL;
    尝试 {
        url11 =新的URL(http://192.168.2.104/homepage/steuerung/steckdosen.php?id=1&status=1);
    }赶上(例外五){
        e.printStackTrace();
    }
    新OpenUrlConnection()执行(url11);

}

公共无效switchLightOff(查看视图){
    // ausschalten
    上下文的背景下= getApplicationContext();
    CharSequence的文字=澳元;
    INT持续时间= Toast.LENGTH_SHORT;
    Toast.makeText(上下文,文本,持续时间).show();

    URL url10 = NULL;
    尝试 {
        url10 =新的URL(http://192.168.2.104/homepage/steuerung/steckdosen.php?id=1&status=0);
    }赶上(例外五){
        e.printStackTrace();
    }

    新OpenUrlConnection()执行(url10);

}

私有类OpenUrlConnection扩展的AsyncTask<网址,虚空,整数GT; {

    公共整数doInBackground(网址...网址){
            尝试 {
                HttpURLConnection的的URLConnection =(HttpURLConnection类)网址[0] .openConnection();
                在的InputStream = urlConnection.getInputStream();
                InputStreamReader的ISW =新的InputStreamReader(中);
            }赶上(例外五){
                e.printStackTrace();
            }
        返回1;
    }
}
 

编辑:

现在我使用的:

  HttpClient的HttpClient的=新DefaultHttpClient();
                HTTPGET HTTPGET =新HTTPGET(将String.valueOf(网址[0]));
                HTT presponse响应= httpclient.execute(HTTPGET);
                。httpclient.getConnectionManager()关闭();
 

但得到这些错误:

  05-06 18:10:3​​6.803 30939-31047 / de.carsten.raspicontrol D / dalvikvm:GC_FOR_ALLOC释放239K,2%自由17052K / 17324K,暂停10毫秒,10毫秒总
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:org.apache.http.client.ClientProtocolException
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在de.carsten.raspicontrol.RasPiControl $ OpenUrlConnection.doInBackground(RasPiControl.java:103)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在de.carsten.raspicontrol.RasPiControl $ OpenUrlConnection.doInBackground(RasPiControl.java:97)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在android.os.AsyncTask $ 2.call(AsyncTask.java:288)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在android.os.AsyncTask $ SerialExecutor $ 1.运行(AsyncTask.java:231)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在java.lang.Thread.run(Thread.java:841)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:org.apache.http.client.CircularRedirectException:产生的原因通知重定向到http://192.168.2.104/homepage/ steuerung / steckdosen.php ID = 1&放大器;状态= 0'
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.DefaultRedirectHandler.getLocationURI(DefaultRedirectHandler.java:173)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:923)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:475)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-06 18:10:3​​8.163 30939-31047 / de.carsten.raspicontrol W / System.err的:10 ...更多
 

解决方案

您的Andr​​oid code是完全没有问题的 - 这是不是打篮球的服务器。首先,请检查您是否调用了正确的URL,并通过正确的参数。如果所有这些都很好,那么问题肯定是在服务器端。

如果您制定中c自己的服务器$ C $,然后将其张贴在这里,我们将尽力提供帮助。如果是别人的code,那么你必须让他们解决这个问题,提供URL和错误的详细信息。

Hello i got the Problem that my app is so slow with this error:

java.net.ProtocolException: Too many redirects: 21

Now i dont know why it is soo slow, and gets the error, the only thing the website does it opens the php document and start the bash command. :( so it should redirect only 1 time

Thanks :)

I will switch the lights on with a button in the app:

    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;
    }
}

EDIT:

now i am using:

                    HttpClient httpclient = new DefaultHttpClient();
                HttpGet httpget = new HttpGet(String.valueOf(urls[0]));
                HttpResponse response = httpclient.execute(httpget);
                httpclient.getConnectionManager().shutdown();

but get these errors:

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

解决方案

Your Android code is perfectly fine - it's the server that's not playing ball. First of all, check that you are calling the correct URL and passing the correct parameters. If all of these are fine, then the problem is definitely on the server side.

If you developed the server code yourself, then post it here and we'll try to help. If it's somebody else's code, then you have to get them to fix it, providing the details of the URL and the error.

这篇关于java.net.ProtocolException:重定向过多:21 Android应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆