`

java.net.ProtocolException: Server redirected too many times(20)

阅读更多

If the above doesn't apply, you may try to use the following code (hack) to skip the re-direction,
            get the Location header and re-connect:
           
            try {
                  URL url = new URL("http://www.ama.org/events ");
                  HttpURLConnection con = (HttpURLConnection) url.openConnection();
                  con.setFollowRedirects(true);
                  con.setInstanceFollowRedirects(false);
                  con.connect();
             
              while (String.valueOf(con.getResponseCode()).startsWith("3")) {
                 String theLocation = con.getHeaderField("Location");
                 con.disconnect();
                 url = new URL(theLocation);
                 con = (HttpURLConnection) url.openConnection();
                 con.setFollowRedirects(true);
                 con.setInstanceFollowRedirects(false);
                 con.connect();
                 }
                 /** at this point you are located at the last(target)page of
                     redirection chain */
             
            } catch (Exception ex) { ex.printStackTrace(); }

分享到:
评论

相关推荐

    HttpClient问题:The server failed to respond with a valid HTTP resp

    如果服务器未能正确生成并发送这些元素,HttpClient就会抛出`ProtocolException`,指出服务器的响应无效。 1. **网络问题**:网络连接不稳定或者中断可能导致HttpClient无法接收到服务器的响应。检查网络连接,确保...

    jsoup网络爬虫

    这里可以使用Java的`StringTokenizer`和`HashMap`实现: ```java String text = doc.text(); StringTokenizer tokenizer = new StringTokenizer(text); Map, Integer> wordCountMap = new HashMap(); while ...

    Android 使用volley过程中遇到的问题解决办法

    com.android.volley.NoConnectionError: java.io.InterruptedIOException”,内容加载失败,问题出在重复调用 queue.start() 方法。 错误提示:com.android.volley.NoConnectionError: java.io....

    java的常见问题及解决方法定义.pdf

    当发送数据到URL时,如果遇到“Exception in thread "main" java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true)”的异常,表明`URLConnection`的`doOutput`...

    java的常见问题及解决方法参照.pdf

    遇到"java.net.SocketException: Connection reset"错误,通常是因为服务器端关闭了连接。这可能发生在读取或写入数据时。解决这个问题通常需要检查服务器端代码,确保其不会在数据传输期间意外关闭连接。 这些是...

    httpcore-4.4.10.jar

    org.apache.http.ProtocolException.class org.apache.http.ProtocolVersion.class org.apache.http.ReasonPhraseCatalog.class org.apache.http.RequestLine.class org.apache.http.StatusLine.class org.apache....

    java常见异常汇总

    `java.net.ProtocolException`: cannotwrite toaURLConnectionif doOutput=false **异常描述**:通过 `URLConnection` 发送数据时,若 `doOutput` 属性设置为 false,则会抛出此异常。 **原因分析**:当 `...

    使用java控制HTTP协议客户端应用(20211126014913).pdf

    - `openServer()` 方法可能涉及创建Socket连接到目标服务器,并初始化输入和输出流。 - 请求完成后,通常需要关闭相关资源,防止资源泄露。这可能在 `Http` 类的适当位置,或者在 `finally` 块中完成。 7. **编码...

    使用java控制HTTP协议客户端应用.pdf

    - `java.net.URL`类用于解析和操作统一资源定位符(URL),`target`变量存储了请求的目标URL。 4. **HTTP请求方法**: - `GET`:请求获取指定URL的资源。 - `HEAD`:仅获取资源的元信息,不包含实际资源内容,常...

    JAVA类说明文档

    JAVA类说明文档 JAVA类说明文档是关于文件上传和下载的高效率类,提供了详细的说明和实例代码。该类可以直接使用,运行稳定,且可以放到自己的项目中。 在上传下载时,需要用到两个核心包:commons-fileupload-...

    Java Http编程简单示例

    - **HttpURLConnection**:Java标准库中的`java.net.HttpURLConnection`类是Java进行HTTP通信的基础。它支持HTTP/1.1协议,可以用于发送GET、POST等请求。使用HttpURLConnection需要设置请求方法、添加请求头和写入...

    第13章-Java网络编程-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社.pptx

    在Java中,网络编程涉及到几个关键的类,它们位于`java.net`包下。对于IP层,`InetAddress`类用于标识网络上的硬件资源,可以通过IP地址或主机名创建。对于应用层,`URL`类是统一资源定位符,它能够定位互联网上的...

    第章Java网络2022优秀文档.ppt

    Java提供了一套强大的API,位于`java.net`包及其子包中,用于处理网络通信的各种需求。本章节将深入探讨Java网络编程的基础知识,包括TCP和UDP协议、IP地址、端口号以及套接字的概念。 首先,Java中的网络API支持IP...

    httpclient-4.5所需jar包

    HTTPClient抛出多种异常,如`IOException`、`HttpException`和`ProtocolException`,在编写代码时应适当地捕获和处理这些异常。 8. **最佳实践** - 使用合适的连接管理策略,防止连接泄漏。 - 关闭不再使用的...

    HTTPClient

    System.out.println("Redirected to: " + redirectUrl); } } ``` **7.3 处理多层重定向** 对于多层重定向的情况,可以使用循环来递归地处理重定向: ```java String currentUrl = "http://shortlink.com"; while...

    Java语言基础 Java网络编程技术 Java程序设计使用教程 第10章 网络通信(共53页).ppt

    `ProtocolException`是协议相关的错误,`BindException`发生在绑定端口时出现问题,`UnknownServiceException`表示请求的服务未知。 在网络编程中,我们还需要关注安全性问题,比如使用SSL/TLS进行加密通信,防止...

    Feign发送Get请求时,采用POJO对象传递参数的最终解决方案.docx

    throw new ProtocolException("cannot write to a URLConnection if doOutput=false - call setDoOutput(true)"); } else { if (this.method.equals("GET")) { this.method = "POST"; } } } } ``` 当`...

    httpclient-4.5.jar

    7. **错误处理**:HttpClient提供了丰富的异常处理机制,如`IOException`、`HttpException`和`ProtocolException`,使开发者能够更好地捕获和处理可能出现的问题。 HttpClient 4.5的这些特性使其成为Java开发者在...

    HttpClient工具包

    2. **处理异常**:HttpClient可能会抛出各种异常,如IOException、ProtocolException等,需妥善处理,确保程序的健壮性。 3. **关闭资源**:使用完HttpClient后,记得关闭连接和流,避免资源泄漏。 4. **优化请求...

Global site tag (gtag.js) - Google Analytics