mailchimp와 연락처를 동기화하려고합니다. 연락처 정보에서 (Johéctíóú Diamond)와 같은 ascii 문자를 확장하면 오류가 발생합니다.WebClient UploadData는 확장 ASCII 문자로 json 데이터를 게시하는 동안 400 개의 잘못된 요청 오류를 표시합니다.
원격 서버에서 오류를 반환했습니다 : (400) 잘못된 요청입니다. 에서 System.Net.WebClient.UploadDataInternal (Uri 주소, String 메서드, Byte [] 데이터, WebRequest & 요청) at System.Net.WebClient.UploadString (Uri 주소, String 메서드, 문자열 데이터) 에서 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();
}
}
webClient.UploadString 메서드에서 오류가 발생합니다. 이 오류를 해결하기 위해 사용해야하는 다른 방법이 있습니까? 도움이 될 것입니다.
당신이 가장 가능성이 당신이 인코딩을 지정하지 않으면 UTF8 인코딩을webClient.Encoding = Encoding.UTF8;
를 지정해야합니다
을 –