0

次の関数で http 投稿をしようとしています。投稿データに通常の JSON データ (テキストのみ) が含まれていても問題なく動作します。しかし今、私のjsonデータには、そのフィールドの1つに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 は次のよう なります。

"{\"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

Framework 4.0を使用している場合、これは、リクエストの本文でxmlまたはその他のタグを送信することを拒否するWebサーバー検証構成設定が原因である可能性があります。その場合は、web.configのWebセクションでRequestValidationModeを2.0に変更してみてください。

    <httpRuntime requestValidationMode="2.0" />
于 2013-01-30T12:49:08.033 に答える
0

私は答えを得ました、小さなばかげたこと: 「XMLData」は間違っています。サーバーに記述されているJsonパラメーターとまったく同じ「XmlData」である必要があります。

于 2013-01-30T14:14:54.927 に答える