Untitled

 avatar
unknown
plain_text
a year ago
1.4 kB
6
Indexable
     public Invoice CreateInvoice(Invoice invoice)
     {
         string apiUrl = $"{_baseUri}invoices";
         var request = (HttpWebRequest)WebRequest.Create(apiUrl);
         request.Method = "POST";
         request.ContentType = "application/json";
         request.Accept = "application/json";
         request.Headers.Add("Authorization", $"Basic {_authorizationHeaderValue}");

         var json = JsonConvert.SerializeObject(invoice, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
         using (var streamWriter = new StreamWriter(request.GetRequestStream()))
         {
             streamWriter.Write(json);
         }

         using (var response = (HttpWebResponse)request.GetResponse())
         {
             if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created)
             {
                 using (var reader = new StreamReader(response.GetResponseStream()))
                 {
                     var content = reader.ReadToEnd();
                     return JsonConvert.DeserializeObject<Invoice>(content);
                 }
             }
             else
             {
                 throw new HttpRequestException($"Failed to create Invoice. Status code: {response.StatusCode}");
             }
         }
     }
Editor is loading...
Leave a Comment