Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文档已移动到错误位置_Java_Jquery_Httpclient_Httpwebresponse - Fatal编程技术网

Java 文档已移动到错误位置

Java 文档已移动到错误位置,java,jquery,httpclient,httpwebresponse,Java,Jquery,Httpclient,Httpwebresponse,在阅读了stackoverflow的各种帖子和其他人的一些帮助后,我在代码中进行了身份验证,同时还试图避免以前发生的重定向,因为我对所有这些事情都是新手。我开始得到相同的错误返回302发现,文件已移动 我试图通过在jsp中编写一些代理代码,从我的计算机本地对其他域进行ajax调用。这是我调用proxy.jsp页面的jQuery AJAX代码 var search_agile_metadata = 'https://doc.xyz.com/rest-services/services/get?id

在阅读了stackoverflow的各种帖子和其他人的一些帮助后,我在代码中进行了身份验证,同时还试图避免以前发生的重定向,因为我对所有这些事情都是新手。我开始得到相同的错误返回302发现,文件已移动

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

var search_agile_metadata = 'https://doc.xyz.com/rest-services/services/get?id=';

var on_show_info = function() {
var outOfDomainCall = search_agile_metadata + current_doc.id;//An XML document

request_meta_info = $.ajax({
url: "proxy.jsp?url=" + outOfDomainCall,
                type: 'GET',
                success: on_get_metadata,
                error: on_get_metadata_error

        });
我的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://login.xyz.com/siteminder/cert/13890/smgetcred.scc?TYPE=16777217&amp;REALM=-SM-amp;SMAUTHREASON=0&amp;METHOD=GET&amp;SMAGENTNAME=-SM-3FfhzbcpbcT6grIIICnrPzvFIbogCZlcnVHG8&amp;TARGET</p>
<hr>
<address>Apache/2.0.58 (Unix) DAV/2 mod_jk/1.2.28 Server at doc.xyz.com Port 80</address>
</body></html>

302发现
建立

文档已经移动了我不认为是HTTPS让您如此混乱,但是401未授权是关键。检查协议中的内容:。您的请求需要考虑授权标头。我曾经在HttpClient库中这样做过:

HTTP401
意味着“未经授权”,你可能知道,你试图访问的url似乎有点复杂——部分原因是它使用https协议,部分原因是“nocert”的东西,我不知道它是什么。您是否尝试过一个更简单的URL,例如“”或其他什么?@AndréLaszlo,因为它正在使用更简单的URL。。我用这个xml文件
http://www.w3schools.com/xml/note.xml
我看不出你的代码有什么问题。您是否尝试过其他https url?您在浏览器中尝试过有问题的url吗?@AndréLaszlo,您在谈论哪个url。您尝试访问的实际url,附加ID和所有内容。感谢您的回复。。这意味着我必须在JSP中使用http客户机库,以及如何在上面的JSP中使用这个库。任何例子都将受到赞赏。这并不意味着您必须使用HttpClient。您需要做的是在请求中提供一个身份验证头。我不知道你是如何用普通的JaneURL实现的,所以我推荐HttpClient,因为我发现它是一种非常方便的方式。只需下载HttpClient库并浏览示例。不太难。这里有一个链接指向他们的基本身份验证示例:哦,是的,要导入到JSP中,只需将导入指令放在JSP的顶部即可。并将JAR本身放入WEB-INF/libI中,以更新问题。。我按照你说的方法做了,我开始得到同样的错误。。