我试图从带有java的单独服务器上的asp页面获取信息。
以下是我目前正在为代码运行的内容:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%@ page import="com.nse.common.text.*" %>
<%@ page import="com.nse.common.admin.*" %>
<%@ page import="com.nse.common.util.*" %>
<%@ page import="com.nse.common.config.*" %>
<%@ page import="com.nse.ms.*" %>
<%
String targetUrl = "http://******/dash_auth/getmsuser.asp";
InputStream r2 = new URL(targetUrl).openStream();
%>
<html>
<head>
<title>get username</title>
</head>
<body>
Return Info = <%=r2%>
</body>
</html>
这就是我要回来的事情
Return Info = sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@5fc9f555
我希望得到一个用户名,而不是这个连接字符串。关于如何获得我的其他页面的实际输出的任何建议将非常有用!
答案 0 :(得分:2)
当您执行<%=r2%>
时,您获得的是out.print(r2.toString())
,它只是提供实例的描述。
使用方法从InputStream
读取,以获取服务器结果。
答案 1 :(得分:1)
您必须从InputStream中读取()。
答案 2 :(得分:-1)
您需要使用http客户端创建连接并获取内容。或者对像curl这样的OS实用程序进行系统调用。
以下是有关如何使用http客户端的示例
http://hc.apache.org/httpclient-legacy/tutorial.html
如果您想以非托管方式执行此操作,这是一个有效的示例:
public class URLStreamExample {
public static void main(String[] args) {
try {
URL url = new URL("http://www.google.com");
InputStream is = url.openStream();
byte[] buffer = new byte[2048];
StringBuilder sb = new StringBuilder();
while (is.read(buffer) != -1){
sb.append(new String(buffer));
}
System.out.println(sb.toString());
} catch (MalformedURLException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}