Java HttpURLConnection可以获取所有内容,包括css、img等
我的要求是使用web应用程序获取目标内容,并且必须使用HttpURLConnection添加请求头 我使用这个代码Java HttpURLConnection可以获取所有内容,包括css、img等,java,servlets,header,request,httpurlconnection,Java,Servlets,Header,Request,Httpurlconnection,我的要求是使用web应用程序获取目标内容,并且必须使用HttpURLConnection添加请求头 我使用这个代码 try{ String urlStr = "http://test/STAM/Login"; url = new URL(urlStr); urlconn = (HttpURLConnection)url.openConnection(); urlconn.setRequestProperty("Accept
try{
String urlStr = "http://test/STAM/Login";
url = new URL(urlStr);
urlconn = (HttpURLConnection)url.openConnection();
urlconn.setRequestProperty("Accept-Language","en-us,en;q=0.5");
urlconn.setRequestProperty("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7");
urlconn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16");
urlconn.connect();
//read the result from the server
rd = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
sb = new StringBuilder();
while ((line = rd.readLine()) != null)
{
sb.append(line + '\n');
}
out.println(sb.toString());
} catch(Exception e) {
e.printStackTrace();
} finally {
//close the connection, set all objects to null
urlconn.disconnect();
rd = null;
sb = null;
wr = null;
urlconn = null;
}
结果是:
我的代码将只获取源内容,但无法获取css、图像文件、javascript等,因为它将从本地主机加载,例如“http://localhost:8080/test/img/test.gif“而不是”http://test/STAM/img/test.gif". 如果我错了,请告诉我,或者你有办法解决这个问题
非常感谢。据我所知,在获取html页面时,您希望获取页面中使用的所有资源(css/js/images/…) 您可能知道,是一种引用外部资源的标记语言。web浏览器的任务是获取所有这些资源并呈现页面。如果您想要拥有所有资源,那么您应该解析源内容以提取到资源的链接并分别获取它们
如果您想重用来自其原始位置的资源,则必须注意,仍然可以从打开页面的位置访问资源URL。()据我所知,在获取html页面时,您希望获取页面中使用的所有资源(css/js/images/…) 您可能知道,是一种引用外部资源的标记语言。web浏览器的任务是获取所有这些资源并呈现页面。如果您想要拥有所有资源,那么您应该解析源内容以提取到资源的链接并分别获取它们
如果您想重用来自其原始位置的资源,则必须注意,仍然可以从打开页面的位置访问资源URL。()不要使用HttpUrlConnection来执行此操作。您将最终解析html文件以解决一个已经解决的问题
使用:不要使用HttpUrlConnection来执行此操作。您将最终解析html文件以解决一个已经解决的问题
用法:我已经在web上使用URLConnection从任何网站获取Html css和javascript代码的源代码,我在这里尝试使用URL、URLConnection和InputStream获取microsoft网站的代码
import java.io.BufferedInputStream;
import java.io.IOExecption;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLExeption;
import java.net.URL;
import java.net.URLConnection;
public class Main2{
public static void main(String[] args) throws IOException{
URL u = new URL("http://www.microsoft.com/");
URLConnection uc = u.openConnection();
InputStream is = uc.getInputStresm();
InputStream buf = new BuffredInputStream(is);
Reader r = new InputStreamReader(buf);
int i;
while((i = r.read()) != -1){
System.out.println((char)i);
}
}
}
或者试试下面的代码
URLConnection uc = new URL("http://www.google.com").openConnection();
BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());
int i;
while(( i == bis.read()) != -1){
System.out.println((char)i);
}
bis.close();
}
}
我已经在web中使用URLConnection从任何网站获取Html css和javascript代码的源代码,我在这里尝试使用URL、URLConnection和InputStream获取microsoft网站的代码
import java.io.BufferedInputStream;
import java.io.IOExecption;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLExeption;
import java.net.URL;
import java.net.URLConnection;
public class Main2{
public static void main(String[] args) throws IOException{
URL u = new URL("http://www.microsoft.com/");
URLConnection uc = u.openConnection();
InputStream is = uc.getInputStresm();
InputStream buf = new BuffredInputStream(is);
Reader r = new InputStreamReader(buf);
int i;
while((i = r.read()) != -1){
System.out.println((char)i);
}
}
}
或者试试下面的代码
URLConnection uc = new URL("http://www.google.com").openConnection();
BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());
int i;
while(( i == bis.read()) != -1){
System.out.println((char)i);
}
bis.close();
}
}
我想通过使用HttpURLConnection查看目的地网站的完整内容(文本、图像)。谢谢你说的全部内容是什么意思?就像您在浏览器中看到页面一样?您需要的是一个具有多个HttpURLConnection的浏览器。连接仅用于检索对请求的响应。它不会解析HTML内容以发出图像/脚本/CSS请求…@ThomasJungblut是的,我的要求是用户希望看到我页面中的定义页面。我希望使用HttpURLConnection查看目标网站的完整内容(文本、图像)。谢谢你说的全部内容是什么意思?就像您在浏览器中看到页面一样?您需要的是一个具有多个HttpURLConnection的浏览器。连接仅用于检索对请求的响应。它不会解析HTML内容来发出图像/脚本/CSS请求…@ThomasJungblut是的,我的要求是用户希望在我的页面中看到定义页面。