HTTP-утилиты FSharp.Data предоставляют параметр customizeHttpRequest. Он принимает базовый HttpWebRequest и возвращает запрос, который нужно использовать:

open System.Net
open FSharp.Data

let body =
    Http.RequestString(
        "https://example.net/data",
        customizeHttpRequest = fun request ->
            request.Proxy <- WebProxy("http://proxy.example.net:8080")
            request
    )

Функция обратного вызова задаёт прокси для этого запроса. Для этого публичного HTTPS-запроса неаутентифицированный кандидат из списка HTTP-прокси может заменить пример конечной точки, если этот маршрут разрешён. Её последнее выражение возвращает объект запроса, что соответствует документированному типу функции HttpWebRequest -> HttpWebRequest.

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

Похожие статьи