-
2021-02-12 14:16:57
在java中我们可以很方便的调用各种类库处理各种字符,那你知道在Java中如何获取URL的内容吗?其实Java获取URL的内容的方法非常简单,一起来看看以下内容吧。
第一:创建HttpURLConnection
第二:打开URL,创建一个InputStream
第三:逐行(逐字节)读取,如果需要,转换编码,放入字符串。
好,一下就开始代码吧:
复制代码 代码如下:
public String getUrlContent(String path){
String rtn = "";
int c;
try{
java.net.URL l_url = new java.net.URL(path);
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
l_connection.setRequestProperty("User-agent","Mozilla/4.0");
l_connection.connect();
InputStream l_urlStream = l_connection.getInputStream();
while (( ( c= l_urlStream.read() )!=-1)){
int all=l_urlStream.available();
byte[] b =new byte[all];
l_urlStream.read(b);
rtn+= new String(b, "UTF-8");
}
//Thread.sleep(2000);
l_urlStream.close();
}catch(Exception e){
e.printStackTrace();
}
return rtn;
}
其中
l_connection.setRequestProperty("User-agent","Mozilla/4.0");
这句是必须的,很多服务器对于没有User-agent头的请求直接403了就。
然后采用InputStream.available()来一次性读取,返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数,如果需要的话,可以在后面稍微Sleep一下线程:
Thread.sleep(2000);
其中的
通过上面的内容你知道在Java中如何获取URL的内容的方法了吗?其实POST和其它方式的都是比较类似的。只要掌握三点技术要点即可。
更多相关内容 -
Java 获取URL的内容
2021-01-08 21:18:15Java获取URL内容的,我这里只给出GET方式的,POST和其它方式的都是比较类似的。其技术要点就一下三点。 第一:创建HttpURLConnection 第二:打开URL,创建一个InputStream 第三:逐行(逐字节)读取,如果需要,转换... -
java发送url请求获取返回值的二种方法
2020-09-04 13:37:55主要介绍了java发送url请求获取返回值的二种方法,需要的朋友可以参考下 -
Java获取此次请求URL以及服务器根路径的方法
2020-09-03 09:56:53主要介绍了Java获取此次请求URL以及服务器根路径的方法,需要的朋友可以参考下 -
如何基于java或js获取URL返回状态码
2020-10-15 22:35:50主要介绍了如何基于java或js获取URL返回状态码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
java请求URL返回JSON
2021-02-13 02:06:14需求:testCase 访问本地的 url,获得返回 url 的 json 数据1,url 路径 比如访问 http://localhost:8080/spb/resultController如下@RestController@RequestMapping("/spb")public class JsonController extends ...需求:
testCase 访问本地的 url,获得返回 url 的 json 数据
1,url 路径 比如访问 http://localhost:8080/spb/result
Controller如下
@RestController
@RequestMapping("/spb")
public class JsonController extends MainController {
private static final Logger logger = LoggerFactory.getLogger(JsonController.class);
@RequestMapping("/result")
public String resultJson() {
return "{\"name\": \"小明\",\"age\": 14,\"gender\": true,\"height\": 1.65,\"grade\": null,\"middle-school\": \"\\\"W3C\\\" Middle School\",\"skills\": [\"JavaScript\",\"Java\",\"Python\",\"Lisp\"]}";
}
运行项目访问url如下
那我们在testCase中如何访问这个url路径来获取json数据呢?如下
@Test
public void testJsonResult() throws IOException {
URL connect = isConnect("http://localhost:8080/spb/result");
if (null != connect){
String json = loadJson(connect.toString());
System.out.println(json);
}
}
public synchronized URL isConnect(String urlStr) {
URL url = null;
HttpURLConnection connection = null;
int counts = 0;
if (urlStr == null || urlStr.length() <= 0) {
return null;
}
while (counts < 5) {
try {
url = new URL(urlStr);
connection = (HttpURLConnection) url.openConnection();
int code = connection.getResponseCode();
System.out.println(counts +" = "+code);
if (code == 200) {
System.out.println("URL可用!");
}
break;
} catch (Exception ex) {
counts++;
System.out.println("URL不可用,连接第 " + counts +"次");
urlStr = null;
continue;
}
}
return url;
}
public static String loadJson(String url) {
StringBuilder json = new StringBuilder();
try {
URL urlObject = new URL(url);
URLConnection uc = urlObject.openConnection();
// 设置为utf-8的编码 才不会中文乱码
BufferedReader in = new BufferedReader(new InputStreamReader(uc
.getInputStream(), "utf-8"));
String inputLine = null;
while ((inputLine = in.readLine()) != null) {
json.append(inputLine);
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return json.toString();
}
运行效果为
易错点注意
在运行testCase之前需要确认服务器是否启动(tomcat是否启动),如果没有启动获取不到json数据
如果连接不上url,请确认访问的端口是否与你tomcat的端口相同
-
Java后台通过URL请求获取返回的数据
2021-07-17 19:54:49public class HttpUtils { private static Logger log = ... public static String sendGet(String url, String param, String contentType){ StringBuilder result = new StringBuilder(); BufferedReader ipublic class HttpUtils { private static Logger log = LoggerFactory.getLogger(HttpUtils.class); public static String sendGet(String url, String param, String contentType){ StringBuilder result = new StringBuilder(); BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); URLConnection connection = realUrl.openConnection(); connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect(); in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType)); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { log.error("获取地址失败:{}",e.toString()); } return result.toString(); } }
-
java 获取url地址返回的数据
2018-02-26 11:52:35参考自:... import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class Url ...参考自:http://blog.csdn.net/daydayupzzc/article/details/38866489
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class Url { public static void main(String[] args) throws Exception { String url="http://flash.weather.com.cn/wmaps/xml/chengdu.xml"; getData(url); } public static String getData(String urlString) throws Exception { String res = ""; BufferedReader reader = null; try { URL url = new URL(urlString); URLConnection conn = (URLConnection)url.openConnection(); reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); System.out.println("创建url!"); String line; while ((line = reader.readLine()) != null) { System.out.println("分别获取每行内容!:"+line); res += line; } reader.close(); } catch (Exception e) { e.getMessage(); } System.out.println(res); return res; } }
返回结果:
原网页内容:
接下来就可以解析其中自己需要的内容了(上面例子中返回的数据是xml格式的字符串,如果需要返回数据流请参考上面原教程) -
通过URL地址获取远程数据并用json返回
2018-09-27 10:49:34通过URL访问接口,获取数据,并将xml格式转换为json格式输出。 -
Java 获取网络url图片返回file文件对象
2020-06-11 14:32:25导入包: ...import java.net.URL; /** * 测试 */ public static void main(String[] args) { try { String destUrl = "https://ibsbjstar.ccb.com.cn/NCCB_Encoder/Encoder?CODE=EUSo4Twu6YRk2JDPJ9On -
java访问url获取json数据
2021-02-25 18:26:20最近在做接口,做自己的,也要把别人的接口封装到自己的接口里,比如直接访问url就能获取json数据的一种接口调用方式(我自己的也是这样对外提供的,感觉比较懒省事)。不仅自己封装别人的需要先读取到数据,在自己... -
JAVA通过url获取网页内容
2012-12-08 21:50:57JAVA通过url获取网页内容 -
JAVA代码用POST请求url获取返回结果,接收返回结果
2021-05-13 16:49:20//JAVA代码用POST请求url获取返回结果,接收返回结果。 public void getName() { MultiValueMap<String, String> multiValueMap = new HttpHeaders(); //这里放请求头header的数据,如果数据都是在url里面... -
java获取ip地址返回地区
2018-07-09 16:50:34java获取ip地址返回国家、地区,城市名称,包含QQwry ip库 -
java通过url获取网页内容
2021-02-25 19:55:29在java中,一个url的简单小应用,就是通过url爬取网页的内容。在这里会遇到一个小问题,如果是服务器端禁止抓取,会在控制台报 HTTP 403错误代码。例如CSDN博客网站java.io.IOException: Server returned ... -
Java 获取url地址文件流
2021-09-14 09:29:24URL url = new URL(java.net.URLDecoder.decode(urlStr, "UTF-8")); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //设置超时间为3秒 conn.setConnectTimeout(3*1000); //防止屏蔽程序抓取而... -
java通过url调用接口
2017-09-13 09:45:11java通过url调用外部接口,返回字符串,再讲字符串解析成json格式。包含源码和jar包,直接运行即可,带注释。 -
java 获取某个URL的文件扩展名的方法(非精确,精确的扩展名应该使用服务器返回的MIME-TYPE)
2021-03-06 04:09:20public staticString getFileExtension(URL extUrl) {//URL: "http://photosaaaaa.net/photos-ak-snc1/v315/224/13/659629384/s659629384_752969_4472.jpg"//String filename = "";//PATH: /photos-ak-snc1/v315/224... -
java根据url获取网络文件
2021-12-23 16:18:50话不多说直接提供方法 ... // 服务器返回的状态 String ee = new String(); try { URL url = new URL(filePath); // 创建URL URLConnection urlconn = url.openConnection(); // 试图连接并取得 -
ScrapeTheWeb:Java Servlet,它获取URL并返回该页面上最常用的单词
2021-05-14 21:07:29ScrapeTheWeb Java Servlet,它获取URL并返回可以作为该页面的搜索查询传递的KEYWORD。 该servlet使用JSoup库从HTML DOM中提取数据。 针对少数网站以提取所需的正确关键字,然后将其传递给Quixey的API以显示与搜索... -
java后台通过url获取返回数据
2016-03-31 16:34:26import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; impor -
【JAVA获取URL文件并转成文件流下载】
2022-06-16 11:40:18java获取远程文件并转流 -
java获取路径(url) path
2021-02-12 09:46:30JAVA路径的方法:注明:如果从ANT启动...得到classpath和当前类的绝对路径的一些方法获得CLASSPATH之外路径的方法:URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testj... -
JAVA方法中通过调用URL来获取其返回的内容
2015-10-31 21:47:31JAVA方法中通过调用URL来获取其返回的内容 -
java获取重定向url
2020-04-04 17:51:12java获取重定向url 这里用到了HttpUrlConnection的**setInstanceFollowRedirects()对重定向进行处理,并用getHeaderField(“Location”)**得到header的location属性值,及重定向的url。 /** * 获取重定向地址 *... -
Java 通过url获取图片传给前端
2020-09-26 16:04:15Java 通过url获取图片传给前端 把新学的功能做个记录,一下是具体的代码实现。 具体代码实现 前端传入的 url分为服务器图片的url和网络图片url,因此需要做一个判断,来区分它们。 /** * 通过url获取图片传给前端 ... -
java获URL请求体body中的内容
2021-10-28 11:07:38代码如下,自己看吧 ...import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; /** * @Ti -
JAVA请求url并获取返回数据
2018-09-03 11:23:07* 请求的url链接 返回的是json字符串 * @param urlStr * @return */ public static String getURLContent(String urlStr) { //请求的url URL url = null; //请求的输入流 Bu... -
java文件上传,返回访问url
2020-12-18 11:01:34@Value("${filepath.imgdir}") private String imgDir; //存储路径 @Value("${filepath.imgurl}... //地址url /** * 图片上传 * * @param file * @return */ @RequestMapping(value = "/upload") public R...