【问题标题】:How to add a XML request on the body of Restsharp call如何在 Restsharp 调用的主体上添加 XML 请求
【发布时间】:2019-01-23 15:12:42
【问题描述】:

我正在开发一个调用 API 的软件,我必须向该 API 发送 XML 请求以获取更多数据。

我已经尝试过request.AddXmlBody(nextID) 但它不起作用,我也尝试过request.AddParameter("text/xml", nextID, ParametreType.RequestBody ) 并且我收到错误:XML 异常,缺少根元素。

    var client = new RestClient("https://xxxxxxxxxxxxx.xxx");

    client.Authenticator = new HttpBasicAuthenticator("xxxxx", "xxxx");          
    var request = new RestRequest("/xx/xxx/xx/xx/xxxxx", Method.GET);
    string nextID = "<?xml version=\"1.0\" encoding=\"UTF - 8\" ?>< ServiceRequest > < filters > < Criteria field = \"id\" operator= \"GREATER\" > 13782472 </ Criteria ></ filters ></ ServiceRequest > ";
    request.AddHeader("X-Requested-With", "RestSharp");
    request.AddParameter(nextID);
    IRestResponse response = client.Execute(request);

    var xml_text = response.Content;

    string xq1 = "//*[contains(text(),'XXX')]/..";

    XmlDocument xd = new XmlDocument();
    xd.LoadXml(xml_text); 

我想将我的字符串 nextID 添加到我的请求正文中以获取我想要的文件。

【问题讨论】:

  • 您有多余的空格需要删除:string nextID = " 13782472 ";

标签: c# xml request restsharp


【解决方案1】:

感谢@jdweng,我的字符串上的多余空间是我的错误。

此代码有效:

string nextID = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ServiceRequest> <filters> <Criteria field = \"id\" operator=\"GREATER\"> 13782472 </Criteria></filters></ServiceRequest>"; 
        request.AddHeader("X-Requested-With", "RestSharp");
        request.AddParameter("text/xml", nextID, ParameterType.RequestBody);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2019-10-30
    • 1970-01-01
    相关资源
    最近更新 更多