我试图将这段代码从异步任务[Http客户端post]转换为rest sharp post方法。以下是使用httpclient的异步任务方法的工作示例:
static async Task addEmailToListAsync(string ListName, string Email, string FirstName, string LastName)
{
try
{
var baseAddress = new Uri("https://api2.autopilothq.com/");
using (var httpClient = new HttpClient { BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("autopilotapikey", "mykey");
using (var content = new StringContent(""))
{
using (var response = await httpClient.PostAsync("v1/list/" + ListName + "/contact/" + Email, content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
}
catch (Exception)
{
await addEmailToListAsync(ListName, Email, FirstName, LastName);
}
}
这个方法有效,自动驾驶仪以“{}”的形式返回一个响应,这表示一切都进行得很顺利。
现在,我尝试使用restsharp库转换此函数,并实现它,以便该方法不是异步任务,而是一个简单的void函数:
public static void addEmailToList(string ListName, string Email, string FirstName, string LastName)
{
var client = new RestClient("https://api2.autopilothq.com/");
client.AddDefaultHeader("autopilotapikey", "mykey");
var request = new RestRequest("v1/list",Method.POST);
var jsonObj = JsonSerializer.Serialize(new
{
ListName = ListName,
Contact = Email
});
request.AddParameter("application/json", jsonObj, ParameterType.RequestBody);
var res = client.Execute(request).Content;
var test = "";
}
这是我在转换时尝试过的示例-但我不断从restsharp获得消息,身体数据无效。。。
我做错了什么?我在胡思乱想,但我想不出来。。