Click here to Skip to main content
16,019,983 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am facing problem while checking if file exists in a https website. My below code works for http websites but it does not work for https websites.
Full file path needs to passed like https://image.shutterstock.com/image-photo/colorful-hot-air-balloons-flying-260nw-1033306540.jpg


Public Function URLExists(ByVal url As String) As Boolean
    Dim webRequest As System.Net.WebRequest = System.Net.WebRequest.Create(url)
    webRequest.Method = "HEAD"
    Try
        Dim response As System.Net.HttpWebResponse = CType(webRequest.GetResponse, System.Net.HttpWebResponse)
        If (response.StatusCode.ToString = "OK") Then
            Return True
        End If
        Return False
    Catch
        Return False
    End Try
End Function


What I have tried:

I have tried to pass below file paths to test it. You can use your own and check it.

HTTPS
https://image.shutterstock.com/image-photo/colorful-hot-air-balloons-flying-260nw-1033306540.jpg

HTTP:
http://zprajnandgaon.gov.in/img/map.png

For Example:
Label1.Text = URLExists("http://zprajnandgaon.gov.in/img/map.png")

Returns True

Label1.Text = URLExists("https://image.shutterstock.com/image-photo/colorful-hot-air-balloons-flying-260nw-1033306540.jpg")

Returns False even if the file exists

Please help me.
Posted
Updated 22-Jun-20 21:16pm
Comments
Maciej Los 23-Jun-20 2:53am    
Your function works for me as well for both addresses!
Richard MacCutchan 23-Jun-20 3:09am    
Same here, both links work fine. It may help if you actually explained what is meant by "it does not work".

1 solution

Your function is working fine. I've checked it with below code:

VB.NET
Sub Main
	Dim urls = {"http://zprajnandgaon.gov.in/img/map.png",
		"https://image.shutterstock.com/image-photo/colorful-hot-air-balloons-flying-260nw-1033306540.jpg",
		"https://losmac.myqnapcloud.com:8081/download/dragdroplistbox.zip",
		"https://losmac.myqnapcloud.com:8081/download/inlinepicturebrowser.zip"}
	
	For Each url As String In urls
		Console.WriteLine($"'{url}' => {URLExists(url)}")
	Next
	
End Sub

' Define other methods and classes here
Public Function URLExists(ByVal url As String) As Boolean
    Dim webRequest As System.Net.WebRequest = System.Net.WebRequest.Create(url)
    webRequest.Method = "HEAD"
    Try
        Dim response As System.Net.HttpWebResponse = CType(webRequest.GetResponse, System.Net.HttpWebResponse)
        If (response.StatusCode.ToString = "OK") Then
            Return True
        End If
        Return False
    Catch
        Return False
    End Try
End Function


Result:
'http://zprajnandgaon.gov.in/img/map.png' => True
'https://image.shutterstock.com/image-photo/colorful-hot-air-balloons-flying-260nw-1033306540.jpg' => True
'https://losmac.myqnapcloud.com:8081/download/dragdroplistbox.zip' => True
'https://losmac.myqnapcloud.com:8081/download/inlinepicturebrowser.zip' => True
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900