0

我正在尝试使用以下功能发布 http 帖子。它适用于我的帖子数据包含正常的 JSON 数据(只是文本)。但现在我的 json 数据在其中一个字段中也包含 xml。

 public string postJSON(string username, string password, string endPoint, string json)
    {
        HttpWebRequest request = CreateWebRequest(endPoint, "POST", "text/json");
        request.Credentials = new NetworkCredential(username, password);
        try
        {
            using (var streamWriter = new StreamWriter(request.GetRequestStream()))
            {
                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();
                var httpResponse = (HttpWebResponse)request.GetResponse();
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    return result;
                }
            }
        }
        catch (Exception ex)
        {
            logger.WriteToLog("RequestMaker", "postJason function: " + ex.Message);
            return "error";
        }          
    }

但是当我尝试这样做时,我收到了一个错误的 url 错误 (400)。我的端点 URL 如下所示: http : //se.api.anpdm.com/v1/import/mailinglist/#####/demographicmapping/### 并且必须发布的示例 Json 代码如下所示。

"{\"XMLData\":\"<Subscribers><Subscriber><Name>Pedram</Name><Email>mobedi@live.com</Email><DemographicData><Demographic mapTo='Urval'>30</Demographic></DemographicData></Subscriber><Subscriber><Name>Anders Svensson</Name><Email>pmobedi@yahoo.com</Email><DemographicData><Demographic mapTo='Urval'>27</Demographic></DemographicData></Subscriber></Subscribers>\"}"

还有什么我应该做的吗?

4

2 回答 2

0

我得到了答案,愚蠢的小事:“XMLData”是错误的。它应该是与服务器中写入的 Json 参数完全相同的“XmlData”。

于 2013-01-30T14:14:54.927 回答
0

如果您使用的是 Framework 4.0,这可能是因为您的 Web 服务器验证配置设置拒绝在您的请求正文中发送 xml 或其他标签。如果是这样,请尝试在 web.config 的 web 部分中将 RequestValidationMode 更改为 2.0:

    <httpRuntime requestValidationMode="2.0" />
于 2013-01-30T12:49:08.033 回答