401 unauthorized
Hello,
I have a problem with an HTTP request. When the login has an “@”, I can't communicate via HTTP.
I've tried different types of encoding:
- ISO-8859-1
- Windows-1252
- UTF-8
- UTF-16
- UTF-32
with “Basic” authorization.
Here is my vb code:
Dim reader As IO.StreamReader
Try
Dim hwebrequest As System.Net.WebRequest = System.Net.WebRequest.Create(url)
hwebrequest.Method = "GET"
hwebrequest.Timeout = timeout
'Test encodage
Dim encoded As String = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(login + ":" + pass))
'Dim encoded As String = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("Windows-1252").GetBytes(System.Net.WebUtility.UrlEncode(login) + ":" + System.Net.WebUtility.UrlEncode(pass)))
'Dim encoded As String = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-8").GetBytes(login + ":" + pass))
'Dim encoded As String = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-16").GetBytes(System.Net.WebUtility.UrlEncode(login) + ":" + System.Net.WebUtility.UrlEncode(pass)))
'Dim encoded As String = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-32").GetBytes(System.Net.WebUtility.UrlEncode(login) + ":" + System.Net.WebUtility.UrlEncode(pass)))
hwebrequest.PreAuthenticate = True
hwebrequest.Headers.Add("Authorization", "Basic " + encoded)
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
reader = New IO.StreamReader(hwebresponse.GetResponseStream)
Dim res As String = ""
res = reader.ReadToEnd()
reader.Close()
hwebresponse.Close()
Return res
Catch ex As Exception
Return ex.ToString
End Try
This code works without problem when the login does not have an “@”. But I'd like to make it work with an “@” in it.
Thanks in advance

