RestSharp RestRequest与Paramaters无法正常工作

时间:2016-01-13 05:31:09

标签: parameters get restsharp

我正在打电话给网络API。 Exmaple应该检索名称中带有字母“a”的每个组织。 这是网址,它直接针对网络API http://localhost/GMSWebServices/api/Organisations/get?name=a

如果我将Source硬编码到我的调用函数中,就像这样

        RestRequest request = new RestRequest("Organisations/Get?Name=a");
        // set the response data format
        request.RequestFormat = ReturnFormat;

       var response = _restClient.Execute<List<string>>(request);

这很好用。但是当我使用源是变量的格式时,并且不同地添加参数 例如

string Source = "Organisations";
RestRequest request = new RestRequest(Source, Method.GET);
        // set the response data format
        request.RequestFormat = ReturnFormat;
        //provide any paramaters
        foreach (RestSharp.Parameter p in WebParamaters)
        {
            request.AddParameter(p);
        }
var response = _restClient.Execute<List<string>>(request);

它不起作用。

我是否以正确的方式使用Paramaters? 我是否需要将“/ Get”附加到我的Source的末尾我假设Method.Get处理了这个。

如何使用列表中的参数调用源Get方法? 对于每种方法,我的路由模板应该是什么样的?

埃里克

2 个答案:

答案 0 :(得分:2)

好的..所以我无法使AddParameter工作,但后来我将其更改为AddQueryParameter并且它有效。

我查看了Restshapr文档,但我不确定为什么一个有效,另一个没有。

我正在调用.net web api服务,但忽略了RestSharp请求对象中的Parameters属性。也许web api不支持这种发送参数的方法。

答案 1 :(得分:0)

你必须附加“/ get”,Method.GET只指定请求类型,并且不向url添加任何东西,(因为有时你需要一个get方法来请求一个没有“get”的url在它)。

参数的使用似乎是正确的,所以只需改为:

string Source = "Organisations/get";

或者如果你在其他地方使用Source而没有获取:

RestRequest request = new RestRequest(Source + "/get", Method.GET);