FSharp.Data
FSharp.Data copied to clipboard
Provide a Http request type
Currently FSharp.Data.Http.Request has multiple arguments:
static member Request
(
url,
[<Optional>] ?query,
[<Optional>] ?headers,
[<Optional>] ?httpMethod,
[<Optional>] ?body,
[<Optional>] ?cookies,
[<Optional>] ?cookieContainer,
[<Optional>] ?silentHttpErrors,
[<Optional>] ?silentCookieErrors,
[<Optional>] ?responseEncodingOverride,
[<Optional>] ?customizeHttpRequest,
[<Optional>] ?timeout
) =
Http.AsyncRequest(url, ?query=query, ?headers=headers, ?httpMethod=httpMethod, ?body=body, ?cookies=cookies, ?cookieContainer=cookieContainer,?silentCookieErrors=silentCookieErrors,
?silentHttpErrors=silentHttpErrors, ?responseEncodingOverride=responseEncodingOverride, ?customizeHttpRequest=customizeHttpRequest, ?timeout=timeout)
|> Async.RunSynchronously
Could this be a Type so we could use it/parse/store etc? Something like:
type Request =
{ url: string
query: option<list<string * string>>
headers: option<seq<string * string>>
httpMethod: option<string>
body: option<FSharp.Data.HttpRequestBody>
cookies: option<seq<string * string>>
cookieContainer: option<System.Net.CookieContainer>
silentHttpErrors: option<bool>
silentCookieErrors: option<bool>
responseEncodingOverride: option<string>
customizeHttpRequest: option<System.Net.HttpWebRequest -> System.Net.HttpWebRequest>
timeout: option<int> }
type Request =
{ url: string
query: option<list<string * string>>
headers: option<seq<string * string>>
httpMethod: option<string>
body: option<FSharp.Data.HttpRequestBody>
cookies: option<seq<string * string>>
cookieContainer: option<System.Net.CookieContainer>
silentHttpErrors: option<bool>
silentCookieErrors: option<bool>
responseEncodingOverride: option<string>
customizeHttpRequest: option<System.Net.HttpWebRequest -> System.Net.HttpWebRequest>
timeout: option<int> }
// Add the method below
static member Request(url, config) =
Http.AsyncRequest(url, ?query = config.query, ... )
|> Async.RunSynchronously
I think you can do this by overloading.