【问题标题】:Error in json post request for mailchimp apimailchimp api 的 json 发布请求中的错误
【发布时间】:2015-01-07 20:42:42
【问题描述】:

我正在尝试为以下内容创建包装器: this mailchimp method 使用 C#.Net

我知道已经有 .Net 包装器可用。我正在使用 Dan Esparza 的Mailchimp.Net。包装器类中的方法为上述 api 方法提供异常。它抛出内部服务器异常(500),我不知道为什么,所以我决定为特定方法创建自己的包装器。我有以下代码:

private void CreateGrouping(string apiKey, string listId,string groupName,string groupValue)
        {
            string url = "https://us9.api.mailchimp.com/2.0/lists/interest-grouping-add";

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);



            httpWebRequest.ContentType = "text/json";
            httpWebRequest.Method = "POST";

            List<string> values = new List<string>();
            values.Add(groupValue);

            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                string json = new JavaScriptSerializer().Serialize(new
                {
                    apiKey = apiKey,
                    id  = listId,
                    name = groupName,
                    type="radio",
                    groups = values

                });
                streamWriter.Write(json);
            }


            var response = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(response.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
            }
        }

但在执行 var response = (HttpWebResponse)httpWebRequest.GetResponse(); 时会抛出相同的异常 - 内部服务器错误 (500)。 可能是我以错误的方式传递数据?有人可以帮我找出我在这里缺少什么吗?

【问题讨论】:

  • 内部服务器错误 (500) 至少对于 Web 应用程序来说意味着它已经停止并且当前不工作。

标签: c# visual-studio-2010 mailchimp


【解决方案1】:

我怀疑我以错误的方式传递数据:apiKey 必须是 apikey(k 大写)

string json = new JavaScriptSerializer().Serialize(new
                {
                    apikey = apiKey,
                    id  = listId,
                    name = groupName,
                    type="radio",
                    groups = values

                });

除此之外,我补充说:

streamWriter.Flush();
streamWriter.Close();

它可能会帮助某人节省一些时间。

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2021-03-19
    相关资源
    最近更新 更多