簡體   English   中英

使用XML-RPC.NET在參數中傳遞CDATA

[英]Passing CDATA in a parameter with XML-RPC.NET

我想用XML請求調用XML-RPC Web服務的方法,該請求包含以下片段:

<member>
  <name>filters</name>
  <value><![CDATA[
    <filterinstances>
      <filterinstance type="date" comparison="equals">today</filterinstance>
    </filterinstances>
  ]]></value>
</member>    

為此,我使用XML-RPC.net代理,並將filters參數作為字符串傳遞:

IGetReportData proxy = XmlRpcProxyGen.Create<IGetReportData>();

proxy.Url = "<* my url >*";
proxy.KeepAlive = false;
proxy.UseStringTag = false;

ReportDataParams rp = new ReportDataParams();
rp.show = "3";
rp.filters = "<![CDATA[<filterinstances><filterinstance type=\"date\" comparison=\"equals\">today</filterinstance></filterinstances>]]>";

string s = proxy.GetReportData("test", rp);

ReportParams被定義為結構。

public struct ReportDataParams
{
    public string show;
    public string filters;
}

麻煩的是XML-RPC.Net在過濾器字符串中解碼XML。 以下片段將發送到服務器:

      <member>
        <name>filters</name>
        <value>
          <string>&lt;![CDATA[&lt;filterinstances&gt;&lt;filterinstance type="date" comparison="equals"&gt;today&lt;/filterinstance&gt;&lt;/filterinstances&gt;]]&gt;</string>
        </value>
      </member>

有沒有辦法將CDATA xml片段作為參數傳遞給XML-RPC.Net?

我遇到了類似的麻煩。 我的解決方案就是撕掉所有CDATA的東西。 在您的示例中,您只需傳遞:

<filterinstances><filterinstance type=\"date\" comparison=\"equals\">today</filterinstance></filterinstances>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM