2014-11-27 5 views
0

В моем приложении я звоню в API.'401 Unauthorized' при вызове url с Net.WebClient

Я начинаю строить URL ...

Dim url As String = "http://" & Home.sn_username & ":" & Home.sn_password & "@" & Home.sn_ip & "/command.htm?number=" & phonenumber 
url = Replace(url, Chr(13), "") 

Я хочу, чтобы убедиться, что URL его попытке вызова правильно, поэтому я бросил его на консоль ...

Console.WriteLine("DIALING: " & url) 

URL-адрес является пятном на, поэтому в конце концов я называю URL с Net.Webclient ...

Dim client As New Net.WebClient 
client.DownloadString(url) 

Это не работает. Исключено, и я получаю 401 Несанкционированную ошибку.

Я делаю что-то неправильно? Окончательный URL выглядит так:

http://username:[email protected]/command.htm?Number=01611234565

Если я считать, что и вставить его непосредственно в браузере он отлично работает! (его для IP-телефона API ... мой настольный телефон набирает номер!).

Нужно ли мне смотреть на другой способ предоставления учетных данных или что-то в этом роде?

Заранее благодарен!

+0

Вы находитесь за брандмауэром? –

ответ

0

Попробуйте добавить учетные данные для проверки подлинности непосредственно в WebClient вместо того, чтобы добавлять их перед URL-адресом перед выполнением.

client.Credentials = new NetworkCredential(Home.sn_username, Home.sn_password) 
+0

Спасибо Fatih. Это полуработало, потому что он явно делает вызов API сейчас, но, похоже, он по-прежнему дает мне исключение с ошибкой 401. Странный. Я мог бы просто оттолкнуть ошибку, но я хотел бы знать, что вызывает ее, если это возможно! :) – John

+0

@John Ну, я не уверен, могли бы вы забыть опустить часть аутентификации из URL? –

+0

К сожалению, не проверено и дважды проверено. Бог знает :( – John

Смежные вопросы