Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».

Liste des GroupesRevenir à fcl python 
Sujet : Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».
De : nospam (at) *nospam* valrik.invalid (Valrik)
Groupes : fr.comp.lang.python
Date : 20. Jan 2022, 02:20:34
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <87lezbntpp.fsf@s02.forall>
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Bonjour à tous,

je suis grand débutant en Python, Json et Graphql. Mes questions, donc,
pourront peut-être vous paraître naïves.

Je tente actuellement de programmer une petite application en lignes de
commandes (CLI) permettant de visualiser la grille des programmes de
Radio France. Openapi de Radio France, m'a fourni une clé afin de
pouvoir me connecter sur leur serveur Graphql.

Il existe également un « terrain de jeux » sur
https://openapi.radiofrance.fr/ avec des exemples. Il y a possibilité de
copier la requête et cela donne pour l'un des exemples :

curl 'https://openapi.radiofrance.fr/v1/graphql?x-token=clé_que_je_ne_peux_pas_rendre_publique_pour_l'instant' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://openapi.radiofrance.fr' --data-binary '{"query":"{\n  diffusionsOfShowByUrl(url: \"https://www.franceculture.fr/emissions/fictions-theatre-et-cie\", first: 10) {\n\t edges {\n      cursor\n      node {\n          id\n          title\n          url\n          published_date\n          podcastEpisode {\n            url\n            title\n          }\n      }\n    }\n  }\n}"}' --compressed

À noter que cela fonctionne correctement dans un terminal.

J'ai tenté tant bien que mal de transcrire cette commande en Python et
voilà ce que cela donne :

import urllib3

data_binary='{"query":"{\n  diffusionsOfShowByUrl(url: \"https://www.franceculture.fr/emissions/fictions-theatre-et-cie\", first: 10) {\n\t edges {\n      cursor\n      node {\n          id\n          title\n          url\n          published_date\n          podcastEpisode {\n            url\n            title\n          }\n      }\n    }\n  }\n}"}'

http = urllib3.PoolManager()

r = http.request(
    'GET',
    'https://openapi.radiofrance.fr/v1/graphql?x-token=clé_que_je_ne_peux_pas_rendre_publique_pour_l'instant',
    headers={
        'Accept-Encoding': 'gzip, deflate, br',
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'Connection': 'keep-alive',
        'DNT': '1',  # Obsolète.
        'Origin': 'https://openapi.radiofrance.fr'
    }
)

print(r.data)

Cela me retourne :
b'Must provide query string.'

Ce qui est plutôt logique puisque il n'y a aucune requête Graphql !  ;-)

J'ai tenté de trouver la transcription correcte de celle-ci sur
Internet, épluché la page Man de Curl, coder « à l'arrache »… rien n'y
fait !

Je n'est également rien trouvé sur « --compressed », mais je dois avouer
que j'ai fait beaucoup moins de recherche.

Et bien voilà, je pense avoir fait le tour de la question. Il ne me
reste plus qu'à vous remercier de votre attention.  :-)

Date Sujet#  Auteur
20 Jan 22 * Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».5Valrik
20 Jan 22 `* Re: Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».4Alain Ketterlin
21 Jan 22  `* Re: Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».3Valrik
21 Jan 22   `* Re: Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».2Valrik
5 Feb 22    `- Re: Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».1Valrik

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal