Koodiesimerkit
Tässä on viitteellinen esimerkki POST-pyynnöstä C#-ohjelmointikielellä, jossa on JSON-sanoma, joka käyttää client certificate authenticationia ja lisää mukautetun headerin.
Tämä esimerkki lataa varmenteen ja siihen liittyvän yksityisen avaimen tiedostosta ja lisää sen HttpClientHandleriin. Tämän jälkeen se luo HttpClientin käyttäen tätä handleria. Seuraavaksi se luo JSON-sanoman, muuntaa sen merkkijonoksi ja luo StringContent-olion. Lisäksi se lisää mukautetun otsikon “vero-softwarekey”. Lopuksi se lähettää POST-pyynnön määritettyyn rajapintaan ja tulostaa vastauksen.
Huomaa, että sinun tulee korvata "path_to_your_certificate.pfx", "your_certificate_password", "your_software_key" ja "https://your_api_endpoint" oikeilla arvoilla.
Rajapinnan kutsuminen
using System;
using System.Net.Http;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using Newtonsoft.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Lataa varmenne tiedostosta jossa myös yksityinen avain
var certificate = new X509Certificate2("path_to_your_certificate.pfx", "your_certificate_password");
// Luo HttpClientHandler ja lisää varmenne
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(certificate);
// Luo HttpClient käyttäen luotua handleria
var client = new HttpClient(handler);
// Määritä pyynnön headerit
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
// Lisää mukautettu headeri API-avaimelle
client.DefaultRequestHeaders.Add("vero-softwarekey", "your_software_key");
// Luo JSON-sanoma
var data = new { id = "72832", name = "John" };
var jsonData = JsonConvert.SerializeObject(data);
var contentData = new StringContent(jsonData, Encoding.UTF8, "application/json");
// Lähetä POST-pyyntö
var response = await client.PostAsync("https://your_api_endpoint", contentData);
// Tulosta vastaus
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}