User login endpoint (POST Method)
https://developer.api.yodlee.com/ysl/restserver/v1/user/login
示例输入
cobrandName作为路径参数传递
cobSession作为授权标头传递
loginName和密码作为表单参数传递
cobrandName = cobrand的名字
LOGINNAME = TESTUSER
密码= Yodlee123
授权:{cobSession = 06142010_1:6666b4df326b8a26d6263054bdc4d1725d075230a082b8059ad7c20777b65d836b4eaa2dbf69169a448162c0ea09223012f130934cdee19114577f4c4a66c209}
所以这是示例数据api数据。我已经为我自己的服务器做了很多帖子,但是从来没有添加标题..而且有点困惑?
var httpClient = new HttpClient();
var json = JsonConvert.SerializeObject(t);
HttpContent httpContent = new StringContent(json);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
//httpContent.Headers.Add()
var result = await httpClient.PostAsync(WebServiceUrl, httpContent);
var RegisterResponse = await result.Content.ReadAsStringAsync();
CobrandLoginModel TheObject = JsonConvert.DeserializeObject<CobrandLoginModel>(RegisterResponse);
我可以进行第一次通话并填充模型。但后来我需要再次发送sessionid(令牌),但我需要将其插入标题。我的sessionid返回将是下一个postasync的授权ID。
我认为正确的方法是这个
httpClientUser.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("userSession", TheObject.session.cobSession);
我正走在正确的轨道上吗?
我需要创建 HttpContent httpContent = new StringContent(json);
如何创建格式
我需要发送3个参数 我需要添加返回的sessionid的授权头?
感谢
修改
这是我正在学习的网址 https://developer.yodlee.com/Yodlee_API/Getting_Started
需要添加参数 需要添加一个auth标头 然后发布
更新
我最终得到了这个
var httpClientUser = new HttpClient();
var UserJson = JsonConvert.SerializeObject(newuser);
HttpContent httpContentUser = new StringContent(UserJson);
httpContentUser.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
var createTheToken = "cobSession=" + TheObject.session.cobSession;
var check = httpClientUser.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", "{" + createTheToken + "}");
var CompleteResult = await httpClientUser.PostAsync(YodleeUserLoginUrl, httpContentUser);
var RegisterResponseUser = await CompleteResult.Content.ReadAsStringAsync();
YodleeUserModel LoggedInUser = JsonConvert.DeserializeObject<YodleeUserModel>(RegisterResponseUser);
它仍然不起作用...在ARC上使用相同的凭证我可以获得响应。
但是通过应用程序传递值不起作用
答案 0 :(得分:0)
我开发了一个专门用于使用Xamarin Forms的REST客户端库。该库位于所有平台上。你可以在这里看到它或抓住NuGet。包括Xamarin Forms示例。
https://bitbucket.org/MelbourneDeveloper/restclient-.net/overview
以下是如何添加标题的示例:
_BitbucketClient.Headers.Add("Authorization", "Basic " + credentials);
答案 1 :(得分:0)
使用:
httpClientUser.DefaultRequestHeaders.Add(&#34;授权&#34;,令牌);