Java 检查URL链接是否存在的String[]数组方法。我可以帮忙吗
我正在制作一个大型应用程序,我有点卡住了(实际上现在没有时间把头伸过去)。这是我的问题 我在一个基元数组(实际上它是一个字符串,所以我不确定它是否是基元数组)中的Glide上加载了一堆URL图像,但是它的Java 检查URL链接是否存在的String[]数组方法。我可以帮忙吗,java,android,Java,Android,我正在制作一个大型应用程序,我有点卡住了(实际上现在没有时间把头伸过去)。这是我的问题 我在一个基元数组(实际上它是一个字符串,所以我不确定它是否是基元数组)中的Glide上加载了一堆URL图像,但是它的String[]array={} 这些链接显示在gridview中活动的内部(不太重要)。 我想要的是检查链接是否有效。如果将数组成员踢出无效 public String[] checkingLinkValidation(String[] array) { ArrayList<St
String[]array={}代码>
这些链接显示在gridview中活动的内部(不太重要)。
我想要的是检查链接是否有效。如果将数组成员踢出无效
public String[] checkingLinkValidation(String[] array) {
ArrayList<String> newArrayList = new ArrayList<>( );
String[] newArray = new String[newArrayList.size( )];
for (String s : array) {
if (Patterns.WEB_URL.matcher( s ).matches( ) && !s.equals( "" )) {
if(URLUtil.isValidUrl( s )){
newArrayList.add( s );
}
}
/**
* Nastaviti raditi na ovome. moram izbaciti link koji ne valja
*/
try{
HttpURLConnection httpURLConnection = (HttpURLConnection) new URL( s ).openConnection();
httpURLConnection.setRequestMethod( "HEAD" );
httpURLConnection.setConnectTimeout( 2000 );
httpURLConnection.setReadTimeout( 2000 );
if(httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
newArrayList.add( s );
}
}catch (Exception e){
Log.d( "HTTPURLConnection check if exists", "Error type: "+e.getMessage() );
}
newArray = newArrayList.toArray( newArray );
}
return newArray; }
public String[]checkingLinkValidation(String[]数组){
ArrayList newArrayList=newArrayList();
String[]newArray=newstring[newArrayList.size()];
for(字符串s:数组){
if(Patterns.WEB_URL.matcher.matches()&&&!s.equals(“”)){
如果(URLUtil.isValidUrl){
newArrayList.add(s);
}
}
/**
*Nastaviti raditi na ovome.moram izbaciti link koji ne valja
*/
试一试{
HttpURLConnection HttpURLConnection=(HttpURLConnection)新URL.openConnection();
httpURLConnection.setRequestMethod(“HEAD”);
httpURLConnection.setConnectTimeout(2000);
httpURLConnection.setReadTimeout(2000);
if(httpURLConnection.getResponseCode()==httpURLConnection.HTTP\u确定){
newArrayList.add(s);
}
}捕获(例外e){
Log.d(“HTTPURLConnection检查是否存在”,“错误类型:+e.getMessage());
}
newArray=newArrayList.toArray(newArray);
}
返回newArray;}
问题是,程序无法访问这些链接。我得到exception.getMessage()
->
01-29 18:44:17.799 5705-5705/com.mario.restaurantcroatia I/System.out:(HTTPLog)-静态:ISSBsettingabled false
x20,因为有20个链接。可能的线索是,所有这些链接都作为字符串加载到一个数组中,并通过SharedReferences。
还值得一提的是,如果不使用这种方法,链接就可以正常工作,它们直接进入数组。所有的照片都很好。我的目标是踢出一段时间后过期的链接
希望我说清楚。有人知道为什么链接不能通过这个方法吗
我想要的是检查链接是否有效。如果将数组成员踢出无效
public String[] checkingLinkValidation(String[] array) {
ArrayList<String> newArrayList = new ArrayList<>( );
String[] newArray = new String[newArrayList.size( )];
for (String s : array) {
if (Patterns.WEB_URL.matcher( s ).matches( ) && !s.equals( "" )) {
if(URLUtil.isValidUrl( s )){
newArrayList.add( s );
}
}
/**
* Nastaviti raditi na ovome. moram izbaciti link koji ne valja
*/
try{
HttpURLConnection httpURLConnection = (HttpURLConnection) new URL( s ).openConnection();
httpURLConnection.setRequestMethod( "HEAD" );
httpURLConnection.setConnectTimeout( 2000 );
httpURLConnection.setReadTimeout( 2000 );
if(httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
newArrayList.add( s );
}
}catch (Exception e){
Log.d( "HTTPURLConnection check if exists", "Error type: "+e.getMessage() );
}
newArray = newArrayList.toArray( newArray );
}
return newArray; }
如果我正确理解您的问题,作为一种简单的方法,您可以使用InetAddress类
boolean reachable = InetAddress.isReachable();
遍历数组,然后执行适当的操作,如果地址没有响应,则从数组中删除URL
我已经解决了这个问题
public String[] checkingLinkValidation(String[] array) {
ArrayList<String> newArrayList = new ArrayList<>( );
String[] newArray = new String[newArrayList.size( )];
for (String s : array) {
if(URLUtil.isValidUrl( s )){
newArrayList.add( s );
}
newArray = newArrayList.toArray( newArray );
}
return newArray; }
public String[]checkingLinkValidation(String[]数组){
ArrayList newArrayList=newArrayList();
String[]newArray=newstring[newArrayList.size()];
for(字符串s:数组){
如果(URLUtil.isValidUrl){
newArrayList.add(s);
}
newArray=newArrayList.toArray(newArray);
}
返回newArray;}
仅供参考,因为您在问题中提到了它……字符串不是原语。它们是不可变的对象。我记得Tim BUtchalka教授字符串是实际的类。我不确定,但我记得他们和原始人不同。我已经解决了我的问题。if(URLUtil.isvalidull(s)){newArrayList.add(s);