Bien le bonsoir a tous et à toutes !
Et merci d'être tombé sur mon post ça fais toujours plaisir !
Tout d'abord je tiens a préciser que j'ai un tout petit niveau de programmation. (VB.Net)
Je commence sans plus tarder sur mon soucis ^^
Bon je suis actuellement entrain de "programmer" un petit tool qui es sensé se connecter sur un site, et récupérer des informations sur ce site.
J'ai donc installé "HTTP Header Live" sur Firefox et j'ai "sniffé" les requêtes web.
Et au final, il y as une première requête POST à effectuer, qui prend pour paramètres les identifiants de connexion du site.
J'ai donc finis par faire comme ceci :
Et cela fonctionne car il me renvoie une erreur 403 si les identifiants sont incorrects, et s'ils sont corrects il me renvois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Dim Uri As New Uri("https://gameforge.com/api/v1/auth/thin/sessions") Dim data = Encoding.UTF8.GetBytes("{" & Chr(34) & "identity" & Chr(34) & ":" & Chr(34) & "email@hotmail.fr" & Chr(34) & "," & Chr(34) & "password" & Chr(34) & ":" & Chr(34) & "passsss" & Chr(34) & "," & Chr(34) & "locale" & Chr(34) & ":" & Chr(34) & "fr_FR" & Chr(34) & "," & Chr(34) & "gfLang" & Chr(34) & ":" & Chr(34) & "fr" & Chr(34) & "," & Chr(34) & "platformGameId" & Chr(34) & ":" & Chr(34) & "07b3e4d5-f37e-440b-9aa5-b249121a6bfa" & Chr(34) & "," & Chr(34) & "gameEnvironmentId" & Chr(34) & ":" & Chr(34) & "5c71b04b-a0c3-4792-be4f-81f97c25d8a8" & Chr(34) & "," & Chr(34) & "autoGameAccountCreation" & Chr(34) & ":false}") Dim result_post = SendRequest(Uri, data, "application/json", "POST") MsgBox(result_post.ToString()) Private Function SendRequest(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String) As String Dim response As String Dim request As HttpWebRequest request = WebRequest.Create(uri) request.ContentLength = jsonDataBytes.Length request.ContentType = contentType request.Method = method Using requestStream = request.GetRequestStream requestStream.Write(jsonDataBytes, 0, jsonDataBytes.Length) requestStream.Close() Using responseStream = request.GetResponse.GetResponseStream Using reader As New StreamReader(responseStream) response = reader.ReadToEnd() End Using End Using End Using Return response End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part {"token":"c81ce5ef-0594-41cd-bcc4-41b4d37b6436","isPlatformLogin":true,"isGameAccountMigrated":false,"platformUserId":"1bfd8c6a-c492-4e36-9a2a-3f8515f4033e","isGameAccountCreated":false,"hasUnmigratedGameAccounts":false}
Donc de la je continue de "sniffer" ma liste de requêtes, et j'essaie de faire la deuxième requête, qu'il y as juste après la première POST, une requête GET sur "https://lobby.ikariam.gameforge.com/api/users/me".
Je l'effectues donc de cette manière :
Mais le serveur me renvoie une erreur 403 (interdit) comme si je n'étais pas identifié par exemple ou autre chose... Alors es-que c'est une histoire de cookies ou autre chose.. c'est ça que je voulais vous demander...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 MsgBox(Get_request("https://lobby.ikariam.gameforge.com/api/users/me")) Private Function Get_request(ByVal url As String, Optional ByVal cookies As String = "", Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing, Optional ByVal timeout As Integer = 30000, Optional ByVal login As String = "", Optional ByVal pass As String = "") As String Dim reader As IO.StreamReader Try Dim hwebrequest As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url) hwebrequest.Timeout = timeout If proxy <> "" Then Dim hproxy As WebProxy hproxy = New WebProxy(proxy, proxyport) WebRequest.DefaultWebProxy = hproxy End If If login <> "" Then Dim hcredential As New System.Net.NetworkCredential(login, pass) hwebrequest.Credentials = hcredential End If If cookies <> "" Then hwebrequest.CookieContainer = New CookieContainer hwebrequest.CookieContainer.SetCookies(New Uri(url.Substring(0, url.IndexOf("/", 8))), cookies) End If Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse reader = New IO.StreamReader(hwebresponse.GetResponseStream) Dim res As String = "" res = reader.ReadToEnd() reader.Close() hwebresponse.Close() Return res Catch ex As Exception Return ex.ToString End Try End Function
Pour être plus précis je "sniff" a partir de la page : https://lobby.ikariam.gameforge.com/fr_FR/ qui es la page de connexion d'un jeu en ligne.
Dans le but de s’identifier et récupérer le nombre de points que je possède et les afficher sur le tool)
Voilà j'espère ne pas enfreindre les règles du forum en postant ceci, et j'espère que quelqu'un auras du temps pour moi.. car je suppose que si vous voulez m'aider il faudras vous inscrire sur le jeu et simuler une connexion probablement.
En tout cas merci beaucoup a vous qui avez lu, et a l'équipe developpez
++
Partager