logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
Просмотр
К последнему сообщению К первому непрочитанному
a.kirichenko  
#1 Оставлено : 21 июня 2017 г. 13:56:30(UTC)
a.kirichenko

Статус: Newbie

Группы: Registered
Зарегистрирован: 21.06.2017(UTC)
Сообщений: 5
Откуда: samara

Добрый день
Столкнулся с такой проблемой.

При обращении в api/settings я получаю информацию ("StatusCode : 200" и т.д.)
При обращении в api/Task я получаю ошибку (“Invoke-WebRequest : {"Message":"It wasn't succeeded to receive the list of tasks. Reason :Object reference not set to an instance of an object."} “)

Пробовал разные варианты, но результат всегда такой же.

Варианты скрипта
Invoke-WebRequest "is.guso.loc/api/settings" -Credential (Get-Credential) -Method Get -ContentType "application/json"
Invoke-WebRequest "is.guso.loc/api/Task" -Credential (Get-Credential) -Method get -ContentType "application/json"

Invoke-WebRequest "is.guso.loc/api/settings" -Credential (Get-Credential) -Method Get -ContentType "application/xml"
Invoke-WebRequest "is.guso.loc/api/Task" -Credential (Get-Credential) -Method get -ContentType "application/xml

Invoke-WebRequest "is.guso.loc/api/settings" -Credential (Get-Credential) -Method Get
Invoke-WebRequest "is.guso.loc/api/Task" -Credential (Get-Credential) -Method get


Просьба подсказать в чем может быть проблема!?
Николай  
#2 Оставлено : 21 июня 2017 г. 14:34:29(UTC)
Николай

Статус: Administration

Группы: менеджер IntraService
Зарегистрирован: 18.08.2011(UTC)
Сообщений: 66
Мужчина
Откуда: Москва

Поблагодарили: 1 раз в 1 постах
Добрый день.
Под какой учетной записью передаете запрос к API? Авторизовавшись в веб от этой же учетной записи можете открыть список заявок или тоже видите ошибку?
a.kirichenko  
#3 Оставлено : 21 июня 2017 г. 14:41:53(UTC)
a.kirichenko

Статус: Newbie

Группы: Registered
Зарегистрирован: 21.06.2017(UTC)
Сообщений: 5
Откуда: samara

Спасибо за быструю реакцию!

Под какой учетной записью передаете запрос к API?
Консоль powershell запущена от guso\a.kirichenko
При выполнении скрипта запрашивается credentials, ввожу также guso\a.kirichenko и пароль


Авторизовавшись в веб от этой же учетной записи можете открыть список заявок или тоже видите ошибку?
Если залогинеться в браузере под ней - все видать все работает.




Интересно что /api/settings работает, а api/Task нет..это исключает проблемы с версией\правами\синтаксисом и т.д.!((
Николай  
#4 Оставлено : 21 июня 2017 г. 14:57:50(UTC)
Николай

Статус: Administration

Группы: менеджер IntraService
Зарегистрирован: 18.08.2011(UTC)
Сообщений: 66
Мужчина
Откуда: Москва

Поблагодарили: 1 раз в 1 постах
Попробуйте отправить тот же вызов к API с авторизацией от той же учетной записи не через скрипт, а напрямую, например посредством данного инструмента: http://www.telerik.com/download/teststudio-apis или аналогичного.
a.kirichenko  
#5 Оставлено : 22 июня 2017 г. 8:02:37(UTC)
a.kirichenko

Статус: Newbie

Группы: Registered
Зарегистрирован: 21.06.2017(UTC)
Сообщений: 5
Откуда: samara

Работат(((дрянь
a.kirichenko  
#6 Оставлено : 28 июня 2017 г. 15:00:10(UTC)
a.kirichenko

Статус: Newbie

Группы: Registered
Зарегистрирован: 21.06.2017(UTC)
Сообщений: 5
Откуда: samara

Победил!!

$cred = Get-Credential

$client = (New-Object Net.WebClient)

$Credential = $cred
$ntwCred = $Credential.GetNetworkCredential()
$client.Credentials = $ntwCred
$auth = "Basic " + [Convert]::ToBase64String([Text.Encoding]::Default.GetBytes($ntwCred.UserName + ":" + $ntwCred.Password))
$client.Headers.Add("Authorization", $auth)
$client.Encoding = [System.Text.Encoding]::UTF8
$rez = $client.DownloadString("http://is.guso.loc/api/Task?ServiceId=123&pagesize=1000")


$json = $rez | ConvertFrom-Json
sencov_mv  
#7 Оставлено : 10 сентября 2018 г. 17:48:19(UTC)
sencov_mv

Статус: Newbie

Группы: Registered
Зарегистрирован: 10.09.2018(UTC)
Сообщений: 1

Добрый день! Столкнулся с такой же проблемой.
Выполняю стандартный запрос к API/settings работает, а API/Task не считывается.
var authInfo = userName + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));

var request = (HttpWebRequest)WebRequest.Create("http://its.etsp.ru/api/task?CreatedMoreThan=2018-08-30&pagesize=300");
request.Method = "GET";
request.Accept = "application/json; charset=utf-8";
request.Credentials = new NetworkCredential(userName, password);
request.Headers["Authorization"] = "Basic " + authInfo;

var response = (HttpWebResponse)request.GetResponse();

Пишет не авторизованный доступ.
В чем было ваше решение?
ABabkin  
#8 Оставлено : 30 октября 2018 г. 17:55:13(UTC)
ABabkin

Статус: Newbie

Группы: Registered
Зарегистрирован: 30.10.2018(UTC)
Сообщений: 2
Откуда: Moscow

Автор: sencov_mv Перейти к цитате
Добрый день! Столкнулся с такой же проблемой.
Выполняю стандартный запрос к API/settings работает, а API/Task не считывается.
var authInfo = userName + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));

var request = (HttpWebRequest)WebRequest.Create("http://its.etsp.ru/api/task?CreatedMoreThan=2018-08-30&pagesize=300");
request.Method = "GET";
request.Accept = "application/json; charset=utf-8";
request.Credentials = new NetworkCredential(userName, password);
request.Headers["Authorization"] = "Basic " + authInfo;

var response = (HttpWebResponse)request.GetResponse();

Пишет не авторизованный доступ.
В чем было ваше решение?



У меня заработало так:
#PowerShell
__________________________________________________________________________________

$cred = Get-Credential
$url = 'https://servicedesk/api/task'
$Credential = $cred
$ntwCred = $Credential.GetNetworkCredential()


$params = @{uri = $url;
Method = 'Get'; #(or POST, or whatever)
Headers = @{Authorization ='Basic ' + [Convert]::ToBase64String([Text.Encoding]::Default.GetBytes($ntwCred.UserName + ":" + $ntwCred.Password));
} #end headers hash table
} #end $params hash table
invoke-restmethod @params

invoke-restmethod @params
__________________________________________________________________________________


Учетные данные ввожу от пользователя у которого есть доступ к просмотру заявок.


P/S/
Нет ли шаблона для передачи POST ? стабильно получаю ошибку
{"Message":"Возникла ошибка при создании заявки. Причина: \"object\" не содержит определения для \"UserEmail\""}

(UserEmail - параметр переменный, явно где то косяк в логике/структуре передаваемого запроса....)
y.pryahin  
#9 Оставлено : 7 ноября 2018 г. 11:35:39(UTC)
y.pryahin

Статус: Newbie

Группы: Registered
Зарегистрирован: 06.11.2018(UTC)
Сообщений: 2
Откуда: Moscow

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = $null
y.pryahin  
#10 Оставлено : 7 ноября 2018 г. 17:56:59(UTC)
y.pryahin

Статус: Newbie

Группы: Registered
Зарегистрирован: 06.11.2018(UTC)
Сообщений: 2
Откуда: Moscow

еще один баг,
авторизироваться надо не с доменным паролем, а локальным.
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.