在Swagger上检索令牌

时间:2017-04-01 17:18:10

标签: c# http post xamarin.android swagger

我需要从link检索令牌。 但是当我输入有效的用户名和密码时,我没有看到任何令牌。我还尝试在我的C#Android程序中检索它。

`var client = new RestClient("https://networkrail-uk-qa.traffilog.com/swagger/ui/index#!/User/User_LoginData");
request.AddParameter("username", login);
request.AddParameter("password", password);
IRestResponse response = client.Execute(request);
var content = response.Content;`

输出中有很多数据,但没有令牌。我该怎么处理呢?

enter image description here

1 个答案:

答案 0 :(得分:0)

请求网址错误。

https://networkrail-uk-qa.traffilog.com/swagger/ui/index#!/User/User_LoginData

只是一个文档页面(又名Swagger UI),而不是实际的请求URL。

要查找实际网址,请使用Swagger UI的“试用”功能:填写操作参数,然后点击“试用”。看起来正确的网址是

https://networkrail-uk-qa.traffilog.com/UK/api/User/Login?username={login}&password={password}

登录名和密码必须为URL-encoded

Finding request URL in Swagger UI

还要注意请求HTTP方法(POST),并且需要在查询字符串中传递参数。考虑到所有这些,您的代码应该是:

var client = new RestClient("https://networkrail-uk-qa.traffilog.com");
var request = new RestRequest("UK/api/User/Login", Method.POST);
request.AddQueryParameter("username", login);
request.AddQueryParameter("password", password);

IRestResponse response = client.Execute(request);