Как добавить XML-запрос в тело вызова Restsharp - PullRequest
0 голосов
/ 23 января 2019

Я разрабатываю программное обеспечение, которое вызывает 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 в тело моего запроса, чтобы получить нужный файл.

1 Ответ

0 голосов
/ 25 января 2019

Спасибо @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);
...