C # RestSharp предотвращает перенаправление запроса на 302

Я пытаюсь внедрить стороннюю службу в свой проект, и мне нужно выполнить некоторую аутентификацию, чтобы использовать их API.

Для этого мне нужно выполнить запрос POST по их URL-адресу авторизации, проблема в том, что когда я выполняю запрос, их сервер отправляет ответ с 302 и заголовком Location, теперь странная часть:

Мне нужно получить ссылку на это местоположение и прочитать строку запроса, чтобы получить нужную мне информацию.

Я уже перепробовал все, что мог придумать, даже Postman не будет с ним работать.

Это мой код:

var client = new RestClient(APIBase + "/portal/rest/oauth2/login");

var request = new RestRequest(Method.POST);

request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddHeader("cache-control", "no-cache");
request.AddParameter("application/x-www-form-urlencoded", $"user={User}&password={Password}&client_id={ClientId}", ParameterType.RequestBody);

var content = client.Execute(request);

Это заголовки ответов, которые мне удалось получить с помощью curl в командной строке:

HTTP/1.1 302 Moved Temporarily
Date: Wed, 26 Jul 2017 17:59:32 GMT
Server: Apache-Coyote/1.1
Location: LOCATION-LINK
Content-Length: 0

HTTP/1.1 200 OK
Date: Wed, 26 Jul 2017 17:59:32 GMT
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"20095-1497998126000"
Last-Modified: Tue, 20 Jun 2017 22:35:26 GMT
Content-Type: text/html
Content-Length: 20095
Vary: Accept-Encoding

Является ли это возможным ?


person Ariel    schedule 26.07.2017    source источник


Ответы (1)


Вы можете отключить перенаправления RestSharp с помощью:

client.FollowRedirects = false;

А затем просто проверьте, что код состояния ответа равен 302, и прочитайте заголовок Location.

person Vitaliy    schedule 02.10.2017