2017-02-25 1 views
1
User login endpoint (POST Method) 

https://developer.api.yodlee.com/ysl/restserver/v1/user/loginComment ajouter des en-têtes et des paramètres pour un service de repos des formes de Xamarin C#

Exemple d'entrée

cobrandName est passé comme paramètre de chemin

cobSession est passé comme autorisation tête

loginName et mot de passe sont transmis en tant que paramètres de formulaire

cobrandName = nom du cobrand

LOGINNAME = testuser

password = Yodlee123

Autorisation: {cobSession = 06142010_1: 6666b4df326b8a26d6263054bdc4d1725d075230a082b8059ad7c20777b65d836b4eaa2dbf69169a448162c0ea09223012f130934cdee19114577f4c4a66c209}

c'est donc l'échantillon des données api de données. J'ai fait beaucoup de messages à une API à mon propre serveur, mais n'a jamais eu à ajouter des en-têtes .. et un peu confus?

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); 

Je peux faire mon premier appel et remplir le modèle. mais alors j'ai besoin d'envoyer à nouveau avec le session (jeton) mais j'ai besoin de l'insérer dans un en-tête. mon ID de session retourné sera l'identifiant d'autorisation pour le postasync suivant.

Je pense que la bonne façon est ce

  httpClientUser.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("userSession", TheObject.session.cobSession); 

suis-je sur la bonne voie ?? Ai-je besoin de créer le HttpContent httpContent = new StringContent (json);

Comment créer le format

i besoin d'envoyer 3 paramètres i besoin d'ajouter l'en-tête d'autorisation du sessionid retourné?

grâce

EDIT

ici est l'URL im étudier https://developer.yodlee.com/Yodlee_API/Getting_Started

besoin d'ajouter des paramètres besoin d'ajouter un en-tête auth puis après

MISE À JOUR


J'ai fini avec ce

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); 

ne fonctionne toujours pas ... en utilisant les mêmes credentails sur ARC je peux obtenir la réponse.

mais passer les valeurs via l'application ne fonctionne pas

Répondre

0

J'ai développé une bibliothèque client REST spécifiquement pour l'utilisation de formulaires Xamarin. La bibliothèque se trouve sur toutes les plateformes. Vous pouvez le voir ici ou prendre le NuGet. Il y a des exemples de Xamarin Forms inclus.

https://bitbucket.org/MelbourneDeveloper/restclient-.net/overview

Voici un exemple de la façon d'ajouter un en-tête:

_BitbucketClient.Headers.Add("Authorization", "Basic " + credentials); 
0

Utilisation:

httpClientUser.DefaultRequestHeaders.Add ("autorisation", jeton);