Как выполнить 302 редирект с URL переадресации

Мы используем Xamarin и UITest для создания тестов пользовательского интерфейса для нашего приложения.

Мы используем управление API Azure для интеграции и пытаемся имитировать наш процесс аутентификации. Мы используем Xamarin Essentials WebAuthenticator, который открывает внешний браузер для выполнения двухэтапного OAuth и загрузки страницы входа.

Поскольку UITest не может контролировать что-либо за пределами самого приложения, нам нужно, чтобы управление API отвечало, давая 302 редирект обратно в контролирующее приложение, с нашими тестовыми маркерами аутентификации, которые имитируются.

Я попытался создать фиктивный ответ, который возвращает 302, с заголовком Location со значением нашего URL-адреса возврата для приложения. Однако всякий раз, когда я тестирую это на тестовой странице APIM, он просто возвращает 200 OK.

Можно ли сделать запрос GET к APIM, который выполняет перенаправление 302 на указанный uri с телом имитированных тестовых данных?


person Dean Puckett    schedule 31.03.2021    source источник


Ответы (1)


Вы можете попробовать с политикой обратной связи. Что-то похожее на этот пример:

<when condition="@(context.Request.OriginalUrl.Scheme == Uri.UriSchemeHttp)">
            <return-response>
                <set-status code="302" reason="Temporary Redirect" />
                <set-header name="Location" exists-action="override">
                    <value>@{
                    var uri = context.Request.OriginalUrl;

                    return Uri.UriSchemeHttps + "://" + uri.Host + uri.Path + uri.QueryString;
                    }</value>
                </set-header>
            </return-response>
        </when>

Для справки: https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#ReturnResponse

person JayaChatterjee-MSFT    schedule 01.04.2021