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

Liste des GroupesRevenir à fcl python 
Sujet : Re: Tentative de transcription d'une ligne de commande « Curl » à l'aide de « urllib3 ».
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.python
Date : 20. Jan 2022, 19:25:19
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87h79ypbeo.fsf@universite-de-strasbourg.fr.invalid>
References : 1
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Valrik <nospam@valrik.invalid> writes:

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

Je n'ai aucune idée de ce qu'est graphql.

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.

OK.

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}"}'

Tu ne fais jamais rien de ces données, alors qu'il me semble qu'elles
doivent partir vers le serveur (en tout cas, c'est ce que fait curl).

http = urllib3.PoolManager()
>
r = http.request(
    'GET',

S'il y a des données à transmettre, il faut bien qu'elles soient quelque
part. Avec GET, ce serait dans l'uri.

Mais si j'en crois ta commande curl, c'est en POST qu'elles sont
envoyées (à cause de --data-binary), et c'est du JSON. Jette un oeil à

https://urllib3.readthedocs.io/en/stable/user-guide.html#json

    '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'
    }
)

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

Moi je fais "man curl" et je trouve :

| --compressed
|        (HTTP) Request a compressed response using one of the algorithms
|        curl supports, and save  the  uncompressed  document.   If  this
|        option  is  used  and  the server sends an unsupported encoding,
|        curl will report an error.
|

Mes 2 cents.

-- Alain.

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