我使用以下代码获取aspx页面的返回响应代码
HttpConnection connection
= (HttpConnection) Connector.open("http://company.com/temp1.aspx"
+ ";deviceside=true");
connection.setRequestMethod(HttpConnection.GET);
connection.setRequestProperty(HttpHeaders.HEADER_CONNECTION, "close");
connection.setRequestProperty(HttpHeaders.HEADER_CONTENT_LENGTH, "0");
int resCode = connection.getResponseCode();
工作正常。 但是,如果链接“http://company.com/temp1.aspx”自动重定向到另一个页面,该怎么办?假设“http://noncompany.com/temp2.aspx”? 如何获取从第二个链接(第一个链接重定向到的链接)返回的响应代码? 是否有类似“跟随重定向”的内容来获取自动重定向到的页面的新响应?
提前致谢。
答案 0 :(得分:8)
我找到了解决方案, 这是有兴趣的人:
int resCode;
String location = "http://company.com/temp1.aspx";
while (true) {
HttpConnection connection = (HttpConnection) Connector.open(location + ";deviceside=true");
connection.setRequestMethod(HttpConnection.GET);
connection.setRequestProperty(HttpHeaders.HEADER_CONNECTION, "close");
connection.setRequestProperty(HttpHeaders.HEADER_CONTENT_LENGTH, "0");
resCode = connection.getResponseCode();
if( resCode == HttpConnection.HTTP_TEMP_REDIRECT
|| resCode == HttpConnection.HTTP_MOVED_TEMP
|| resCode == HttpConnection.HTTP_MOVED_PERM ) {
location = connection.getHeaderField("location").trim();
} else {
resCode = connection.getResponseCode();
break;
}
}
答案 1 :(得分:3)
您需要根据响应代码在HTTP重定向的循环内编写HttpConnection代码。
响应中的HTTP标头“location”应该为您提供一个新主机(也许它可以用来替换整个URL)。
HttpConnection.HTTP_MOVED_TEMP
和HttpConnection.HTTP_MOVED_PERM
是指示重定向的两个响应代码。