-
February 3rd, 2013, 01:18 AM
#1
VB.net - HttpWebRequest 401 Unauthorized Error
Hello,
I am trying to connect to a XML file that is stored on a device and this XML file is password protected with a username and password.
If I open a web browser and type in the URL to the XML it asks for a username and password (User: admin / Pass: admin) and it loads up the XML file fine.
However, I am now trying to load this XML up in VB.net (2012) but I seem to get an error saying: The remote server returned an error: (401) Unauthorized.
and the following line is where it stops on with the above error:
Code:
Dim response As System.Net.HttpWebResponse = request.GetResponse()
However I know the username and password is correct as I could load it up in the web browser.
I am using the following VB.net code to do this:
Code:
' Create a WebRequest to the remote site
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://192.168.0.31/data.xml")
' NB! Use the following line ONLY if the website is protected
request.Credentials = New System.Net.NetworkCredential("admin", "admin")
' Call the remote site, and parse the data in a response object
Dim response As System.Net.HttpWebResponse = request.GetResponse()
' Check if the response is OK (status code 200)
If response.StatusCode = System.Net.HttpStatusCode.OK Then
' Parse the contents from the response to a stream object
Dim stream As System.IO.Stream = response.GetResponseStream()
' Create a reader for the stream object
Dim reader As New System.IO.StreamReader(stream)
' Read from the stream object using the reader, put the contents in a string
Dim contents As String = reader.ReadToEnd()
' Create a new, empty XML document
Dim document As New System.Xml.XmlDocument()
' Load the contents into the XML document
document.LoadXml(contents)
MsgBox(contents)
' Now you have a XmlDocument object that contains the XML from the remote site, you can
' use the objects and methods in the System.Xml namespace to read the document
Else
' If the call to the remote site fails, you'll have to handle this. There can be many reasons, ie. the
' remote site does not respond (code 404) or your username and password were incorrect (code 401)
'
' See the codes in the System.Net.HttpStatusCode enumerator
Throw New Exception("Could not retrieve document from the URL, response code: " & response.StatusCode)
End If
My App.config file looks like this:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing = "true"/>
</settings>
</system.net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Does anyone know why I am getting the 401 Unauthorized error?
-
February 4th, 2013, 09:34 PM
#2
Re: VB.net - HttpWebRequest 401 Unauthorized Error
You're passing the incorrect credentials most probably. Anything else past the Credentials part doesn't matter if you don't have the credentials right, if you're getting a 401 code.
[sigpic][/sigpic]
Microsoft MVP .NET Programming (2012 - Present)
®Crestron DMC-T Certified Automation Programmer
-
February 6th, 2013, 12:47 AM
#3
Re: VB.net - HttpWebRequest 401 Unauthorized Error
Hello,
I had to add the username, password, realm, nc, .. etc in the header as it wasn't including it when I sent the request.
request.Headers("Authorization") = .....
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|