Java 如何从UserInput获取URL内容
我正在尝试从用户输入中获取url内容Java 如何从UserInput获取URL内容,java,Java,我正在尝试从用户输入中获取url内容 package edu.psgv.sweng861; import java.net.*; import java.util.Scanner; import java.io.*; /** * A complete Java class that demonstrates how to read content (text) from a * URL using the Java URL and URLConnection classes. The
package edu.psgv.sweng861;
import java.net.*;
import java.util.Scanner;
import java.io.*;
/**
* A complete Java class that demonstrates how to read content (text) from a
* URL using the Java URL and URLConnection classes. There is no user input in
* this program, just a hard-wired url to fetch a conforming Http live streaming
* playlist.
*/
public class JavaUrlConnectionReader {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter URL:");
String userUrl = myObj.nextLine(); // Read user input
System.out.println("User URL is: " + userUrl); // Output user input
}
private static String getUrlContents(String theUrl) {
String content = "";
try {
URL url = new URL(theUrl);
URLConnection urlConnection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
content += line + "\n";
}
bufferedReader.close();
} catch(Exception e) {
System.out.println("The url was invalid, please try again");
}
return content;
}
}
当用户提供url时,而不是试图建立连接时,您应该验证url。URL方法只负责一件事,而不是验证数据 相反,您应该创建一个方法,该方法可以验证用户在中提供的数据。这里有一个例子
public static boolean isValidUrl(String url, String regexPattern){
Pattern patt = Pattern.compile(regexPattern);
Matcher matcher = patt.matcher(url);
return matcher.matches();
}
public static void main(String[] args) {
String url = "https://youtube.com";
String urlRegex = "\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
System.out.println("Url is valid: " + isValidUrl(url, urlRegex)); //URL is valid, and it will print true
}
下面我添加了一个布尔逻辑的工作示例,您可以使用它来验证扫描仪的输入
Scanner scan = new Scanner(System.in);
String url;
do{
System.out.println("Please enter your url");
url = scan.nextLine();
}while(!isValidUrl(url));
System.out.println("The Url was successfull"); //executs only if when the conditions is not met
}
问题是什么?请说明,问题是什么?它不会捕获异常。好的,但是否发生异常?如果没有更多细节,很难提供帮助?用户输入必须是URL,如果用户输入是integer之类的其他内容,它将无法捕获它。当您运行时,它只会在W控制台中显示EnterURL您应该验证用户输入,当您从用户处获得输入时。。。当您尝试发出URL请求时不会