Could someone advice on how to send a HTTP Post with the below as the request parameters.
{
"key": "example key",
"message": {
"html": "<p>Example HTML content</p>",
"text": "Example text content",
"subject": "example subject",
"from_email": "[email protected]",
"from_name": "Example Name",
"to": [
{
"email": "[email protected]",
"name": "Recipient Name"
}
],
"headers": {
"Reply-To": "[email protected]"
},
"important": false,
"track_opens": null,
"track_clicks": null,
"auto_text": null,
"auto_html": null,
"inline_css": null,
"url_strip_qs": null,
"preserve_recipients": null,
"view_content_link": null,
"bcc_address": "[email protected]",
"tracking_domain": null,
"signing_domain": null,
"return_path_domain": null,
"merge": true,
"global_merge_vars": [
{
"name": "merge1",
"content": "merge1 content"
}
],
"merge_vars": [
{
"rcpt": "[email protected]",
"vars": [
{
"name": "merge2",
"content": "merge2 content"
}
]
}
],
"tags": [
"password-resets"
],
"subaccount": "customer-123",
"google_analytics_domains": [
"example.com"
],
"google_analytics_campaign": "[email protected]",
"metadata": {
"website": "www.example.com"
},
"recipient_metadata": [
{
"rcpt": "[email protected]",
"values": {
"user_id": 123456
}
}
],
"attachments": [
{
"type": "text/plain",
"name": "myfile.txt",
"content": "ZXhhbXBsZSBmaWxl"
}
],
"images": [
{
"type": "image/png",
"name": "IMAGECID",
"content": "ZXhhbXBsZSBmaWxl"
}
]
},
"async": false,
"ip_pool": "Main Pool",
"send_at": "example send_at"
}
I am not sure how to do this using RestSharp
Hi,
1) Translate your JSON to POCO (http://json2csharp.com/ is great for that).
2)
var yourobject = new MyObject{.....................};
var json = JsonConvert.SerializeObject(yourobject);
var client = new RestClient(url);
var request = new RestRequest(actionPath, Method.POST);
request .AddParameter("application/json; charset=utf-8", json, ParameterType.RequestBody);
request .RequestFormat = DataFormat.Json;
_client.ExecuteAsync(restRequest, response => ........);
tks me too!
For posterity RestSharp has inbuilt methods for this now.
Check out the AddJsonBody()
method of RestRequest
This is correct for RestSharp 105.0.1.0 onwards anyhow.
Most helpful comment
Hi,
1) Translate your JSON to POCO (http://json2csharp.com/ is great for that).
2)
var yourobject = new MyObject{.....................};
var json = JsonConvert.SerializeObject(yourobject);
var client = new RestClient(url);
var request = new RestRequest(actionPath, Method.POST);
request .AddParameter("application/json; charset=utf-8", json, ParameterType.RequestBody);
request .RequestFormat = DataFormat.Json;
_client.ExecuteAsync(restRequest, response => ........);