SendGrid POST抑制:错误的请求
本文关键字:请求 错误 POST 抑制 SendGrid | 更新日期: 2023-09-27 18:15:51
我正在尝试创建一个GUI来管理SendGrid上的电子邮件组抑制,并且我在一个我几乎没有经验的c# . net环境中工作。
文档显示了两个端点,我需要使用它们来取消订阅(POST)和重新订阅(DELETE)电子邮件组。
我能够让DELETE请求工作,但文档不是很清楚POST请求,或者我只是不理解它。
我试过了:
var request = new RestRequest("v3/asm/groups/" + group.id + "/suppressions", Method.POST);
request.AddParameter("recipient_emails", "['email@example.com']");
但是我得到一个BadRequest响应:
无效JSON:无效字符'r'查找值的开头
我还尝试了这些:
var request = new RestRequest("v3/asm/groups/" + group.id + "/suppressions?{'"recipient_emails'":['"email@example.com'"]}", Method.POST);
var request = new RestRequest("v3/asm/groups/" + group.id + "/suppressions?recipient_emails=['email@example.com']", Method.POST);
但是我得到一个不同的BadRequest响应:
无效JSON: JSON输入的意外结束
我理解错误信息,但我甚至不确定我所做的是正确的。我需要做什么才能得到一个成功的回应?
另外,我知道SendGrid提供了一个c#库,但我无法让它工作。我不是c#开发人员,但我必须这样做,因为我们落后了。我想如果我能理解一个简化的版本,我应该能够在以后整合这个库。
谢谢。
我认为这里的问题是您的请求中没有指定应该是application/json
的content-type
。根据这个答案,尝试这样做:
request.Method = Method.POST;
request.AddHeader("Accept", "application/json");
request.Parameters.Clear();
request.AddParameter("application/json", strJsonContent, ParameterType.RequestBody);
其中strJsonContent
为JSON字符串。要构造这个字符串,您可能需要使用JSON.NET.