Sav*_*tel 2 c# asp.net json webclient webrequest
我正在尝试与 mailchimp 同步联系人。当我在联系方式中扩展了 ascii 字符(例如 (Johéctíóú Diamond))时,它会出现以下错误。
远程服务器返回错误:(400) 错误请求。在 System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request) at System.Net.WebClient.UploadString(Uri address, String method, String data) at DealCloud.WinServices.MailChimp.MailChimpHelper。 AddListMembersImpl(MailChimpServiceContext context, String listId, List`1 toAdd)
下面是发送json数据的代码。
internal virtual string AddListMembersImpl(MailChimpServiceContext context, string listId, List<MailChimpMember> toAdd)
{
if (!(toAdd?.Any() ?? false)) return null;
var uri = string.Format("{0}/batches", context.Url/*, listId*/);
using (var webClient = new WebClient())
{
webClient.Headers.Add("Accept", "application/json");
webClient.Headers.Add("Authorization", "apikey " + context.ApiKey);
//var path = $"lists/{listId}/members";
var toSer = new { operations = toAdd.Select(x => new { method = "POST", path = $"lists/{listId}/members", body = JsonConvert.SerializeObject(new { email_address = x.Email, status = x.Status, merge_fields = x.MergeFields }) }) };
var data = JsonConvert.SerializeObject(toSer, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });
var ret = webClient.UploadString(uri, "POST", data);
var o = JObject.Parse(ret);
return o["id"]?.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
它在 webClient.UploadString 方法上引发错误。我应该使用任何替代方法来解决此错误。任何帮助将非常感激。
如果 mailchimp 想提供更好的响应,您可以通过以下方式更好地了解调试器输出窗口中的实际错误:
catch (WebException ex)
{
if (ex.Response != null)
{
string response = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
Debug.WriteLine(response);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4223 次 |
| 最近记录: |