Skip to content

tmenier/Flurl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4ecd618 · Dec 9, 2017
Aug 17, 2017
Dec 4, 2017
Dec 9, 2017
Dec 9, 2017
Apr 5, 2016
Jun 5, 2017
Aug 17, 2017
Feb 16, 2014
Jun 5, 2017
Aug 9, 2017
Jul 17, 2017

Repository files navigation

Flurl

Build status Flurl Flurl.Http

Flurl is a modern, fluent, asynchronous, testable, portable, buzzword-laden URL builder and HTTP client library.

var result = await "https://api.mysite.com"
    .AppendPathSegment("person")
    .SetQueryParams(new { api_key = "xyz" })
    .WithOAuthBearerToken("my_oauth_token")
    .PostJsonAsync(new { first_name = firstName, last_name = lastName })
    .ReceiveJson<T>();

[Test]
public void Can_Create_Person() {
    // fake & record all http calls in the test subject
    using (var httpTest = new HttpTest()) {
        // arrange
        httpTest.RespondWith(200, "OK");

        // act
        await sut.CreatePersonAsync("Frank", "Underwood");
        
        // assert
        httpTest.ShouldHaveCalled("http://api.mysite.com/*")
            .WithVerb(HttpMethod.Post)
            .WithContentType("application/json");
    }
}

Get it on NuGet:

PM> Install-Package Flurl.Http

Or get just the stand-alone URL builder without the HTTP features:

PM> Install-Package Flurl

For updates and announcements, follow @FlurlHttp on Twitter.

For detailed documentation, please visit the main site.