Skip to content

Solid.Http.Core Usage

Gísli Konráð Björnsson edited this page Mar 17, 2018 · 1 revision

Usage

When working with SolidHttp, you use ISolidHttpClientFactory to create a SolidHttpClient. This SolidHttpClient then creates a SolidHttpRequest. The SolidHttpRequest itself is awaitable so any extension method that returns SolidHttpRequest can be awaited.

Basic example

public class PostsService
{
    private ISolidHttpClientFactory _factory;
    public PostsService(ISolidHttpClientFactory factory)
    {
        // The SolidHttpClientFactory class would be injected here
        _factory = factory;
    }

    public Task<HttpResponseMessage> GetSomethingAsync(CancellationToken cancellationToken)
    {
        var client = _factory.Create();
        var response = await client
            .GetAsync("https://jsonplaceholder.typicode.com/posts", cancellationToken);
        retrun response;
    }
    
}

Intermediate example

public class PostsService
{
    private ISolidHttpClientFactory _factory;
    public PostsService(ISolidHttpClientFactory factory)
    {
        // The SolidHttpClientFactory class would be injected here
        _factory = factory;
    }

    public Task<HttpResponseMessage> EditPostAsync(int id, Post body, CancellationToken cancellationToken)
    {
        var client = _factory.CreateWithBaseAddress("https://jsonplaceholder.typicode.com");
        var json = JsonConvert.SerializeObject(body);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        var response = await client
            .PutAsync("posts/{id}", cancellationToken)
            .WithContent(content)
            .WithNamedParameter("id", id)
            .ExpectSuccess();
        return respsone;
    }
}