Posté le 22/03/2017 à 14:15 Membre depuis le 18/06/2001, -26239 message
• Folco roule un e-patin à Kevin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

lovelovelovelovelovelovelovelovelovelove

Bon ben impec, plus qu'à mettre ça proprement dans une classe, dans une fenêtre à part même, putain ça va chier des bulles carrées, merci encore ! smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 15:41Edité par Folco le 22/03/2017 à 15:56 Membre depuis le 18/06/2001, -26239 message
Bon, par contre comme j'y connais rien en web, j'ai deux questions.
Pour situer les choses, j'ai à peu-près 1000 requêtes à faire, dont la réponse fait 80 à 100 octets de data (je n'ai aucune idée de l'overhead du protocole HTTP).

Je voudrais savoir si je peux lancer toutes les requêtes à la fois pour gagner du temps :
- côté connection, je risque pas de me faire jeter par les serveurs, ou de faire paniquer ma carte réseau ?
- côté programme, comment faire pour apairer les requêtes et les réponses, si je ne fais qu'écouter un signal identique pour toutes les réponses ?

Pour la seconde question, la réponse est certainement dans la doc des classes que j'ai mises en lien en ./25, mais n'y connaissant rien en HTTP, je comprends pas les tenants et aboutissants des headers, des attributs etc...

Merci d'avance. smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 15:43 Membre depuis le 10/06/2001, 40014 messages
Folco (./31) :
- côté connection, je risque pas de me faire jeter par les serveurs, ou de faire paniquer ma carte réseau ?

1000 en même temps, c'est sûr que le serveur ne va pas aimer!

Traditionnellement, dans les navigateurs, la limite était de 2 connexions simultanées au même site. Il me semblerait que ça ait été relâché un peu récemment (à vérifier), mais plus de 5 connexions à la fois ne sont en aucun cas une bonne idée.

Ta carte réseau n'est normalement pas le facteur limitant.

- côté programme, comment faire pour apairer les requêtes et les réponses, si je ne fais qu'écouter un signal identique pour toutes les réponses ?
La manière la plus efficace est probablement d'utiliser des lambdas C++11 pour tes signaux (ce qui te permet d'avoir accès aux variables locales de la méthode qui crée la connexion signal-slot, normalement la même qui crée aussi ta connexion réseau). Sinon, tu as aussi QObject::sender(), mais les experts disent que c'est lent.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 22/03/2017 à 16:03 Membre depuis le 18/06/2001, -26239 message
Merci beaucoup ! top
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 16:39 Membre depuis le 27/04/2006, 59488 messages
Si tu lances toutes les connexions simultanément, tu as toutes les chances de te faire jeter voire blacklister, ouais tongue

À vrai dire, difficile de savoir sans tester, mais même en limitant le nombre de connexions simultanées 1000 requêtes successives sur une courte période de temps ça peut déclencher un truc côté serveur. Qu'en pensent les autres ?
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 22/03/2017 à 16:51 Membre depuis le 18/06/2001, -26239 message
(euh, en fait ça serait dans les ~3500 fear)

D'un autre côté, s'il me faut trois jours pour faire un getter des prix du marché sur steam, je suis pas rendu ><
Et ils font comment, les sites comme SteamAPI, ils ont un accord avec Steam ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 16:57 Membre depuis le 27/04/2006, 59488 messages
Je vois trois possibilités :

- soit Steam n'a aucun mécanisme qui limite les accès massifs. Peu probable pour un site de cette taille.
- soit ils ont effectivement un accord avec Steam.
- soit ils utilisent des astuces, genre une répartition des requêtes sur plein d'IP différentes.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 22/03/2017 à 16:59 Membre depuis le 18/06/2001, -26239 message
Oué, donc limite faudrait que j'évite quoi sorry
Et étudier sérieusement la possibilité SteamAPI...
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 17:01 Membre depuis le 27/04/2006, 59488 messages
Ben ça dépend, en pratique il se peut qu'ils laissent passer. Mais au doigt mouillé, je dirais que 3500 requêtes c'est suffisant pour qu'un truc automatisé détecte que t'es en train d'aspirer leur infos, et généralement ceux qui font des sites web n'aiment pas beaucoup ^^
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 22/03/2017 à 17:22 Membre depuis le 18/06/2001, -26239 message
Même si c'est avec des URL du type de celle donnée par RHJPP : http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=M4A4%20%7C%20Desolate%20Space%20%28Well-Worn%29

Ca retourne du JSON, c'est public, donc je dirais que c'est étudié pour ©, non ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 17:41 Membre depuis le 27/04/2006, 59488 messages
Ce n'est pas parce que c'est accessible publiquement que c'est un buffet à volonté pour autant, hein grin
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 22/03/2017 à 17:46 Membre depuis le 18/06/2001, -26239 message
Ok merci. Je connais pas bien les us et coutume du web ^^
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 22:14Edité par flanker le 22/03/2017 à 22:25 Membre depuis le 18/06/2001, -26239 message
Bon, question récupération à la mano, maintenant ^^

Je veux utiliser la requête de "Market Items", cf la liste des liens à gauche de cette page : https://steamapis.com/developers
Attention, il y a un 'S' à la fin de Item.

Je veux exécuter la requête qui donne des détails, donc d'après la doc de cet entry point, avec ?format=compact
Si j'ajoute "?format=compact" à la fin de ma clé, il me dit que ma clé est invalide : https://api.steamapis.com/market/items/730?api_key=clef?format=compact
Si j'ajoute ça avant ma clé, il me dit qu'il lui manque l'argument clé : https://api.steamapis.com/market/items/730?format=compact?api_key=**ma clé**

Donc question, comment former cette URL ? Ils ont du partir du principe que c'était évident, donc pas la peine d'expliquer grin

Merci d'avance.


Et merci Godzil \o/ grin boing
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 22/03/2017 à 22:29 Membre depuis le 11/07/2003, 54606 messages
(je me suis permis d'éditer ton message pour supprimer ta clef)


Les URL se décomposent en plusieurs morceaux : [schéma]://[nom_du_serveur]/[chemin]?[requête] (on peut même ajouter [schéma]://[login]:[password]@[nom_du_serveur]/[chemin]?[requête] )

La requête est sous la forme argument1=valeur1&argument2=valeur2&argument3=valeur3…
La tienne est sous argument1=valeur1?argument2=valeur2?argument3=valeur3… (api_key=clef?format=compact)
Il faut donc mettre api_key=clef&format=compact pour que ça fonctionne.
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 22/03/2017 à 22:31 Membre depuis le 15/07/2002, 4489 messages
tu dois séparer les arguments entre eux avec &, ? sépare juste les arguments de l'url, l'ordre n'importe pas
Posté le 22/03/2017 à 22:46 Membre depuis le 18/06/2001, -26239 message
Merci à vous. Ca cartonne du tonnerre !!! lovelovelove

ps -> ah, et merci pour la clé tripaf
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 23/03/2017 à 14:36 Membre depuis le 18/06/2001, -26239 message
Putain oO
400 ko la string en réponse de ma requête. Et je dois tout parser. couic
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 23/03/2017 à 16:34 Membre depuis le 27/04/2006, 59488 messages
Huh ? Qu'est-ce qu'il y a dedans pour que ce soit aussi gros ?
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 23/03/2017 à 16:42 Membre depuis le 18/06/2001, -26239 message
http://www.mirari.fr/KrI2
Tous les items et leurs prix en vente sur le Steam Market pour Counter-Strike:GO.
Heureusement c'est du JSON (c'était évident pour tout le monde, sauf pour moi grin), et Qt a des classes pour parser ça. smile
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 23/03/2017 à 16:47 Membre depuis le 27/04/2006, 59488 messages
Ah oui OK, tu récupères tout en une fois, je n'avais pas pigé.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 23/03/2017 à 16:52 Membre depuis le 10/06/2001, 40014 messages
C'est sûrement mieux que de faire des milliers de requêtes pour tout aspirer. wink
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 23/03/2017 à 16:58 Membre depuis le 18/06/2001, -26239 message
Yup. En passant par SteamAPIs.com smile

Un grand merci pour toute votre aide, le web et moi c'est pas ça côté programmation, c'est même une première ^^
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 26/03/2017 à 14:34 Membre depuis le 18/06/2001, -26239 message
Tiens, je fais la requête nécessaire en HTTPS. Est-ce que ça veut dire que Qt utilise SSL sans me le dire ?

(merci de répondre par oui ou par non avant tout exposé technique, je comprends déjà à peine la question que j'ai posée #triclasse#)
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 26/03/2017 à 14:42 Membre depuis le 11/07/2003, 54606 messages
oui (tout comme ton navigateur)
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 26/03/2017 à 14:48 Membre depuis le 18/06/2001, -26239 message
Ok, merci beaucoup !
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !