Repository navigation
Expand file tree
/
Copy pathProgram.cs
More file actions
91 lines (78 loc) · 2.95 KB
/
Copy pathProgram.cs
File metadata and controls
91 lines (78 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using RestSharp;
namespace JSONPropertyNameExample
{
class Program
{
public static IWebHost Host { get; set; }
static void Main(string[] args)
{
Host = WebHost.CreateDefaultBuilder()
.ConfigureServices(services => services.AddMvc())
.Configure(app => app.UseMvc())
.Build();
Host.RunAsync();
SendSampleWithJSONPropertyName();
SendSampleAsClassPropertyName();
Console.ReadLine();
Host.StopAsync().Wait();
}
public static void RunService()
{
Host = WebHost.CreateDefaultBuilder()
.ConfigureServices(services => services.AddMvc())
.Configure(app => app.UseMvc())
.Build();
Host.Run();
}
public static void SendSampleWithJSONPropertyName()
{
var client = new RestClient("http://localhost:5000/TestRoute");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n \"id\" : 12,\r\n \"message_contents\" : \"the contents of stuff\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
}
public static void SendSampleAsClassPropertyName()
{
var client = new RestClient("http://localhost:5000/TestRoute");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n \"NodeId\" : 12,\r\n \"Contents\" : \"the contents of stuff\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
}
}
[Route("TestRoute")]
public class NodeRedController
{
[HttpPost]
public void Post([FromBody] BasicMessage payload)
{
if (payload.NodeId == 0 || String.IsNullOrEmpty(payload.Contents))
{
Console.WriteLine("JSON was NOT deserialized correctly.");
}
else if (payload.NodeId == 12 && payload.Contents == "the contents of stuff")
{
Console.WriteLine("JSON was deserialized correctly.");
}
}
}
public class BasicMessage
{
[JsonPropertyName("id")]
public int NodeId { get; set; }
[JsonPropertyName("message_contents")]
public string Contents { get; set; }
}
}