Передача параметра в GET-запрос RestSharp - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь связаться с сайтом Drupal для доступа к определенному узлу.Я использую C # и RestSharp, чтобы получить доступ к данным.Я могу получить следующее для работы в FireFox RestClient:

http://localhost/drupal/gpa/node?parameters[type]=product_activation

Возвращает правильный тип узла.Но все, что я пытался кодировать с помощью RestSharp, не работает.Я либо получаю все типы узлов, либо вообще никаких.Код, который я использую:

restClient = new RestClient(“http://localhost/drupal/gpa/node”);
RestRequest request = new RestRequest();

request.Method = Method.GET;
request.AddHeader("Content-Type", "application/json");
request.AddHeader("X-CSRF-Token", csrftoken);
request.AddHeader("Cookie", sessid);
request.AddParameter("type", "product_activation", ParameterType.GetOrPost);

var response = restClient.Execute(request);

В результате возвращается каждый узел.И ответ uri:

{http://localhost/drupal/gpa/node?type=product_activation}

Может кто-нибудь объяснить, как исправить передачу параметра для доступа только к запрошенному типу?

1 Ответ

0 голосов
/ 19 декабря 2018

Мне удалось решить эту проблему.Через некоторое отладочное кодирование я заметил, что даже когда я вытаскивал все узлы, тип, который я искал, отсутствовал.Это указало мне на систему Drupal, где я обнаружил, что узел не был «опубликован».Это означало, что для внешнего мира узел не существовал.Следовательно, я не мог восстановить это.Этот код работал, как только я сделал узел "опубликованным":

restClient = new RestClient(RestGetNodes);
RestRequest request = new RestRequest();

request.Method = Method.GET;
request.AddHeader("Content-Type", "application/json");
request.AddHeader("X-CSRF-Token", csrftoken);
request.AddHeader("Cookie", sessid);
request.AddParameter("parameters[type]", "product_activation");
...