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就会抛出`ProtocolException`,指出服务器的响应无效。 1. **网络问题**:网络连接不稳定或者中断可能导致HttpClient无法接收到服务器的响应。检查网络连接,确保...
这里可以使用Java的`StringTokenizer`和`HashMap`实现: ```java String text = doc.text(); StringTokenizer tokenizer = new StringTokenizer(text); Map, Integer> wordCountMap = new HashMap(); while ...
com.android.volley.NoConnectionError: java.io.InterruptedIOException”,内容加载失败,问题出在重复调用 queue.start() 方法。 错误提示:com.android.volley.NoConnectionError: java.io....
当发送数据到URL时,如果遇到“Exception in thread "main" java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true)”的异常,表明`URLConnection`的`doOutput`...
遇到"java.net.SocketException: Connection reset"错误,通常是因为服务器端关闭了连接。这可能发生在读取或写入数据时。解决这个问题通常需要检查服务器端代码,确保其不会在数据传输期间意外关闭连接。 这些是...
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.net.ProtocolException`: cannotwrite toaURLConnectionif doOutput=false **异常描述**:通过 `URLConnection` 发送数据时,若 `doOutput` 属性设置为 false,则会抛出此异常。 **原因分析**:当 `...
- `openServer()` 方法可能涉及创建Socket连接到目标服务器,并初始化输入和输出流。 - 请求完成后,通常需要关闭相关资源,防止资源泄露。这可能在 `Http` 类的适当位置,或者在 `finally` 块中完成。 7. **编码...
- `java.net.URL`类用于解析和操作统一资源定位符(URL),`target`变量存储了请求的目标URL。 4. **HTTP请求方法**: - `GET`:请求获取指定URL的资源。 - `HEAD`:仅获取资源的元信息,不包含实际资源内容,常...
JAVA类说明文档 JAVA类说明文档是关于文件上传和下载的高效率类,提供了详细的说明和实例代码。该类可以直接使用,运行稳定,且可以放到自己的项目中。 在上传下载时,需要用到两个核心包:commons-fileupload-...
- **HttpURLConnection**:Java标准库中的`java.net.HttpURLConnection`类是Java进行HTTP通信的基础。它支持HTTP/1.1协议,可以用于发送GET、POST等请求。使用HttpURLConnection需要设置请求方法、添加请求头和写入...
ProtocolException如何解决.md
ProtocolException(解决方案).md
在Java中,网络编程涉及到几个关键的类,它们位于`java.net`包下。对于IP层,`InetAddress`类用于标识网络上的硬件资源,可以通过IP地址或主机名创建。对于应用层,`URL`类是统一资源定位符,它能够定位互联网上的...
Java提供了一套强大的API,位于`java.net`包及其子包中,用于处理网络通信的各种需求。本章节将深入探讨Java网络编程的基础知识,包括TCP和UDP协议、IP地址、端口号以及套接字的概念。 首先,Java中的网络API支持IP...
项目中碰到的,记录一下