Formatage des paramètres pour HTTPRequest
Bonjour,
J'utilise les comosants NetHTTPClient et NetHTTPRequest pour accéder à différents sites web.
Certains nécessitent une authentification via un formulaire, qui ne me pose pas de problème
Par exemple, pour le site 1, le formulaire est du type:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <form name="login" id="login" action="https://www.lesite1.com//login" method="post">
<table><tr><td>Connexion : </td>
<td>
<input type="hidden" name="urlRedirection" id="urlRedirection" value="https://www.lesite1.com/">
<div id="login">
<label for="login-field" class="label">E-mail</label>
<input id="login-field" type="text" name="login" title="E-mail" value="" >
</div>
<div id="password">
<label for="password-field" class="label">Mot de passe</label>
<input id="password-field" type="password" name="password" title="Mot de passe" value="" >
</div>
</td>
<td>
<div id="submit">
<input type="submit" name="submit" value="Ok" tabindex="3" >
<div>
</div>
</td></tr>
</table>
</form> |
mon code qui fonctionne parfaitement a la forme suivante:
Code:
1 2 3 4 5 6 7 8 9 10
|
begin
dummy:=tstringList.Create;
dummy.AddPair('urlRedirection','https://www.lesite1.com') ;
dummy.AddPair('login','XXXXXX');
dummy.AddPair('password','YYYYY') ;
response:= NetHTTPREquest1.post('https://www.lesite1.com/login',dummy);
buffer:=response.ContentAsString;
end; |
en revanche, pour un autre site, les propriétés "name" des input contiennent des crochets
Code:
1 2 3 4 5 6 7 8 9
|
<div class="form-field identifier">
<input type="text" id="connection_login" name="connection[login]" required="required" placeholder="Identifiant" class="form-control white" />
</div>
<div class="form-field password">
<input type="password" id="connection_password" name="connection[password]" required="required" placeholder="Mot de passe" class="form-control white" />
</div> |
et là, mon code semble ne plus fonctionner.
J'ai essayé
Code:
1 2 3
|
dummy.AddPair('connection[login]','XXXXXX') ;
dummy.AddPair('connection[password]','YYYYYY'); |
puis
Code:
1 2 3
|
dummy.AddPair('connection_login','XXXXXX') ;
dummy.AddPair('connection_password','YYYYYY'); |
et
Code:
1 2 3
|
dummy.AddPair('login','XXXXXX') ;
dummy.AddPair(password','YYYYYY'); |
mais sans succès. Est-ce qu'il y a une mise en forme particulière à faire?