Slå en virksomhed op på CVR-nummer
Eksemplet er et top-level program til .NET 6 og nyere. Records'ene indeholder kun de felter, du har brug for. Resten ignoreres.
csharp
using System.Net;
using System.Net.Http.Json;
using System.Text.Json.Serialization;
var http = new HttpClient { BaseAddress = new Uri("https://apicvr.dk/") };
async Task<Company?> GetCompany(int cvr)
{
var res = await http.GetAsync($"api/v1/{cvr}");
if (res.StatusCode == HttpStatusCode.NotFound) return null;
res.EnsureSuccessStatusCode(); // 422 or 502 throws
return await res.Content.ReadFromJsonAsync<Company>();
}
var company = await GetCompany(24256790);
Console.WriteLine($"{company!.Name}, {company.Zipcode} {company.City}");
foreach (var owner in company.Ejere)
Console.WriteLine($"{owner.Name} {owner.OwnershipRange}");
record Company(
[property: JsonPropertyName("vat")] int Vat,
[property: JsonPropertyName("name")] string Name,
[property: JsonPropertyName("zipcode")] int? Zipcode,
[property: JsonPropertyName("city")] string? City,
[property: JsonPropertyName("protected")] bool? Protected,
[property: JsonPropertyName("ejere")] List<Owner> Ejere);
record Owner(
[property: JsonPropertyName("name")] string? Name,
[property: JsonPropertyName("ownership_range")] string? OwnershipRange);Søg på virksomhedsnavn
csharp
var hits = await http.GetFromJsonAsync<List<Hit>>(
"api/v1/search/fuzzy/" + Uri.EscapeDataString("novo nordisk"));
foreach (var hit in hits!.Take(5))
Console.WriteLine($"{hit.CvrNumber} {hit.Name}");
record Hit(
[property: JsonPropertyName("name")] string Name,
[property: JsonPropertyName("cvr_number")] int CvrNumber,
[property: JsonPropertyName("industrytext")] string? IndustryText);Håndter fejl
| Status | Betydning |
|---|---|
200 | Virksomheden blev fundet. Svaret er JSON. |
404 | Der findes ingen virksomhed med det CVR-nummer. Body: {"detail": {"error": "NOT_FOUND"}} |
422 | CVR-nummeret er ikke et tal. |
502 | CVR-registret svarede ikke. Prøv igen om lidt. |
EnsureSuccessStatusCode() kaster en HttpRequestException ved 422 og 502. Fang den, hvis du vil prøve igen.
Tjek altid
protected, før du bruger data til markedsføring. Er feltet true, har virksomheden frabedt sig reklamehenvendelser.Ofte stillede spørgsmål
Hvordan bruger jeg HttpClient i ASP.NET Core?
Registrér en typed client med builder.Services.AddHttpClient<CvrClient>() i stedet for at oprette nye HttpClient-instanser pr. kald.
Hvorfor er feltnavnene på dansk?
Felter som ejere og direktion følger CVR-registrets egne begreber. Med JsonPropertyName kan du give dem engelske navne i din kode.