Le 22/03/2017 à 14:15
• 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) !
Le 22/03/2017 à 15:41Edité par Folco le 22/03/2017 à 15:56
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) !
Le 22/03/2017 à 15:43
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é
Le 22/03/2017 à 16:03
Merci beaucoup ! top
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Le 22/03/2017 à 16:39
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
Le 22/03/2017 à 16:51
(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) !
Le 22/03/2017 à 16:57
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
Le 22/03/2017 à 16:59
Oué, donc limite faudrait que j'évite quoi sorry
Et étudier sérieusement la possibilité SteamAPI...
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Le 22/03/2017 à 17:01
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
Le 22/03/2017 à 17:22
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) !
Le 22/03/2017 à 17:41
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
Le 22/03/2017 à 17:46
Ok merci. Je connais pas bien les us et coutume du web ^^
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Le 22/03/2017 à 22:14Edité par flanker le 22/03/2017 à 22:25
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) !
Le 22/03/2017 à 22:29
(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
Le 22/03/2017 à 22:31
tu dois séparer les arguments entre eux avec &, ? sépare juste les arguments de l'url, l'ordre n'importe pas
Le 22/03/2017 à 22:46
Merci à vous. Ca cartonne du tonnerre !!! lovelovelove

ps -> ah, et merci pour la clé tripaf
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Le 23/03/2017 à 14:36
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) !
Le 23/03/2017 à 16:34
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
Le 23/03/2017 à 16:42
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) !
Le 23/03/2017 à 16:47
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
Le 23/03/2017 à 16:52
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é
Le 23/03/2017 à 16:58
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) !
Le 26/03/2017 à 14:34
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) !
Le 26/03/2017 à 14:42
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
Le 26/03/2017 à 14:48
Ok, merci beaucoup !
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !