gpt4 book ai didi

java - 302 发现文档已移动错误

转载 作者:行者123 更新时间:2023-12-02 00:40:33 24 4
gpt4 key购买 nike

在阅读了 stackoverflow 上的各种帖子以及其他人的一些帮助后,我在代码中进行了身份验证,并试图避免之前发生的重定向,因为我对所有这些事情都是新手。我开始收到同样的错误:302 Found,文档已移动。

我试图通过在 jsp 中编写一些代理代码来从我的计算机本地对其他域进行 ajax 调用。这是我调用 proxy.jsp 页面的 jQuery AJAX 代码。

    var search_agile_metadata = 'https://search.xyz.com/ag/se/ag/get?id=';

var on_show_info = function() {
//alert("aa");
var outOfDomainAjaxCall = search_agile + current_doc_info.id;//An XML document
alert(outOfDomainAjaxCall);
request_meta_info = $.ajax({
url: "proxy.jsp?url=" + outOfDomainAjaxCall,
type: 'GET',
success: on_get_metadata,
error: on_get_metadata_agile

});

我的 proxy.jsp 文件是:-

    <%@ page language="java" import="org.apache.http.impl.client.AbstractHttpClient,
org.apache.http.client.methods.HttpUriRequest,
org.apache.http.client.methods.HttpGet,
org.apache.http.protocol.HttpContext,
org.apache.http.impl.client.DefaultHttpClient,
org.apache.http.HttpResponse
,org.apache.http.HttpRequest,
java.net.HttpURLConnection,
java.net.URL,
java.util.Collection,
org.apache.commons.httpclient.HttpClient,
org.w3c.dom.*,
javax.xml.parsers.DocumentBuilder,
javax.xml.parsers.DocumentBuilderFactory,
java.net.*,
java.io.*,
org.apache.http.protocol.BasicHttpContext,
org.apache.http.params.BasicHttpParams,
org.apache.http.params.HttpParams,
org.apache.http.Header,
org.apache.http.client.params.HttpClientParams"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>

<%
String a_Url = request.getParameter( "url" ) ;

URL url = new URL (a_Url);
String encoding = new String(
org.apache.commons.codec.binary.Base64.encodeBase64
(org.apache.commons.codec.binary.StringUtils.getBytesUtf8("test:test"))
);


HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setFollowRedirects(false);
connection.setRequestProperty ("Authorization", "Basic " + encoding);
InputStream content = (InputStream)connection.getInputStream();
BufferedReader in =
new BufferedReader (new InputStreamReader (content));
String line;
while ((line = in.readLine()) != null) {
out.println(line);
}

%>

<%
final HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, false);
%>

当我从服务器收到响应时。我收到这个错误。知道为什么我会收到此错误吗..

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://ln.xyz.com/site/n/13000/smscc?TYPE=16777217&amp;R">here</a>.</p>
<hr>
<address>Apache/2.0.58 (Unix) DAV/2 mod_jk/1.2.28 Server at search.xyz.com Port 80</address>
</body></html>

任何帮助将不胜感激..

最佳答案

这不是一个错误。这是一条非正式消息。该请求刚刚被重定向。这是 3nn 响应。只有 HTTP 4nn 和 5nn 响应是错误(4nn = 客户端错误,5nn = 服务器错误)

您的具体问题是您已通过以下设置告诉 HttpURLConnection 遵循重定向:

connection.setFollowRedirects(false);

因此,您看到的是非正式消息,而不是自动重定向到新请求。您应该告诉它遵循重定向:

connection.setFollowRedirects(true);
<小时/>

与问题无关:请注意,您在此并未充分利用 Apache HttpClient API。您只需使用标准 Java SE URLConnection API 来建立 HTTP 连接。线路

HttpClientParams.setRedirecting(params, false);

URLConnection 行为完全没有影响。您应该选择使用其中之一。标准 URLConnection API Apache HttpClient。

另请记住,在 JSP 文件而不是 Java 类中编写 Java 代码是一种不好的做法。您应该使用 servlet 来完成这项工作。

关于java - 302 发现文档已移动错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com