当前位置: 首页 > 面试题库 >

java.net.ProtocolException:重定向过多:21 Android应用程序

宰父衡
2023-03-14
问题内容

您好,我收到了我的应用程序出现以下错误的问题:

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和错误的详细信息。



 类似资料:
  • 问题内容: 我使用以下代码发出了一个简单的URL请求: 但是在最后一行,我收到“重定向次数过多错误”。如果说我的“网页”变量是google.com,那么它可以正常工作,但是当我尝试使用我的servlet的URL时,它将失败。看来我可以用以下方法调整重定向之后的次数(默认为20): 但是当我将其提高到100时,抛出错误肯定需要更长的时间,所以我知道它正在尝试。但是,指向我的servlet的URL在(

  • 我用下面的代码发出一个简单的URL请求: 但在最后一行,我得到了“重定向太多次错误”。如果我的“网页”变量是谷歌。com,然后它工作正常,但当我尝试使用servlet的URL时,它失败了。似乎我可以通过以下方法调整它遵循重定向的次数(默认值为20): 但是当我把它调到,比如说,100时,肯定需要更长的时间来抛出错误,所以我知道它在努力。然而,我的servlet的网址在(任何)浏览器中都能正常工作,

  • 我有这个应用程序工作在一个标准的LAMP堆栈,但当我试图运行它在docker nginx php-fpm我得到一个错误(使用richarove/nginx-php-fpm. docker容器)。 编辑:此容器在同一容器中运行nginx和php fpm。 http://ip-vm/sistema/index.php/gui/gui/login 这是标准输出错误: 2016/04/13 23:23:1

  • 使用 I/O 重定向可以同时解析和固定命令输出的片段(see 样例 15-7). 这也使得可以生成报告和日志文件. 样例 20-12. 日志记录事件 #!/bin/bash # logevents.sh # 作者: Stephane Chazelas. # 用于 ABS 许可指南. # 事件记录到文件. # 必须 root 身份执行 (可以写入 /var/log). ROOT_UID=0

  • 嘿,在StackOverflow社区,我在StackOverflow上搜索了很多,以修复我的“太多重定向”错误。但找不到任何有用的东西。我想通过.htaccess和UserAgent条件重定向到移动目录。找到了一个高票数的解决方案,如下所示:

  • 巧妙地使用I/O重定向可以解析和粘合命令输出的各个片断 (参考 例子 11-7). 这样就可以产生报告性的文件和日志文件. 例子 16-12. 事件记录 1 #!/bin/bash 2 # logevents.sh, Stephane Chazelas编写. 3 4 # 把事件记录在一个文件. 5 # 必须以root身份运行 (这样才有权限存取 /var/log).