• chevron_right

      cURL, the omnipresent data tool, is getting a 25th birthday party this month

      news.movim.eu / ArsTechnica · Friday, 10 March, 2023 - 18:28 · 1 minute

    Two men curling in blurry motion photo

    Enlarge / Curling, like the cURL project, requires precision and is underappreciated.

    When you first start messing with the command line, it can feel like there's an impermeable wall between the local space you're messing around in and the greater Internet. On your side, you've got your commands and files, and beyond the wall, there are servers, images, APIs, webpages, and more bits of useful, ever-changing data. One of the most popular ways through that wall has been cURL, or "client URL," which turns 25 this month.

    The cURL tool started as a way for programmer Daniel Stenberg to let Internet Chat Relay users quickly fetch currency exchange rates while still inside their chat window. As detailed in an archived history of the project , it was originally built off an existing command-line tool, httpget, built by Rafael Sagula. A 1.0 version was released in 1997, then changed names to urlget by 2.0, as it had added in GOPHER, FTP, and other protocols. By 1998, the tool could upload as well as download, and so version 4.0 was named cURL.

    Over the next few years, cURL grew to encompass nearly every Internet protocol, work with certificates and encryption, offer bindings for more than 50 languages, and be included in most Linux distributions and other systems. The cURL project now encompasses both the command-line command itself and the libcurl library. In 2020, the project's history estimated the command and library had been installed in more than 10 billion instances worldwide.

    Read 2 remaining paragraphs | Comments

    • chevron_right

      Transformez vos commandes curl en Python, JavaScript, PHP, R, Go et bien d’autres avec CurlConverter

      news.movim.eu / Korben · Thursday, 2 February, 2023 - 08:00 · 2 minutes

    Si vous codez des outils qui utilisent des APIs ou d’autres services en ligne pour récupérer de la donnée ou en envoyer, j’imagine que vous adorez vous plonger dans leur documentation. En général, on y trouve des exemples de code qui expliquent comment « discuter » avec l’API, et ces exemples utilisent le plus souvent la commande curl. Quand on a de la chance, il y a aussi des exemples en python ou en JS voire JavaScript, mais ça ne va pas chercher plus loin.

    Alors, comment faire pour gagner du temps si vous devez écrire du R, Go, C#, Ruby, Rust, Elixir, Java, MATLAB, Dart, CFML, Ansible URI ou encore du JSON ?

    Et bien avec le site CurlConverter , vous allez pouvoir convertir toutes ces commandes curl dans le langage de votre choix. Il est également disponible avec la commande curlconverter que vous pouvez installer sur votre machine.

    Par exemple, cette commande curl d’authentification :

    curl "https://example.com/" -u "some_username:some_password"

    Devient en DART le code suivant :

    import 'dart:convert';
    import 'package:http/http.dart' as http;
    
    void main() async {
      var uname = 'some_username';
      var pword = 'some_password';
      var authn = 'Basic ' + base64Encode(utf8.encode('$uname:$pword'));
    
      var url = Uri.parse('https://example.com/');
      var res = await http.get(url, headers: {'Authorization': authn});
      if (res.statusCode != 200) throw Exception('http.get error: statusCode= ${res.statusCode}');
      print(res.body);
    }

    Ou en C# :

    HttpClient client = new HttpClient();
    
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://example.com/");
    
    request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("some_username:some_password")));
    
    HttpResponseMessage response = await client.SendAsync(request);
    response.EnsureSuccessStatusCode();
    string responseBody = await response.Content.ReadAsStringAsync();

    CurlConverter sait interpréter la syntaxe Bash, tels que les chaînes de caractères ANSI-C et les fichiers pipés. Il connaît également tous les arguments de curl (il y en a plus de 300 !!), y compris ceux qui ont été supprimés des versions récentes (et donc ignorés la plupart du temps). Il peut également convertir les données JSON en objets natifs et génère le code capable de le lire soit à partir d’un fichier ou d’un flux en entrée.

    Malheureusement, seul le protocole HTTP est pris en charge, et les générateurs de code pour d’autres langages sont moins complets que le générateur pour Python.

    Pour utiliser curlconverter , vous pouvez l’installer en tant que bibliothèque JavaScript avec la commande

    npm install curlconverter

    Ou comme outil utilisable en ligne de commande comme ceci :

    npm install --global curlconverter

    Voici un exemple de code généré à partir de cette commande :

    $ curlconverter --data "hello=world" example.com
    import requests
    
    data = {
        'hello': 'world',
    }
    
    response = requests.post('http://example.com', data=data)

    Bref, super pratique pour ceux qui veulent se simplifier le processus de création de requêtes HTTP dans leur langage favori, tout en se reposant sur des commandes curl plus familières.

    • Ha chevron_right

      Météo dans la console

      raspbeguy · pubsub.gugod.fr / hashtagueule · Monday, 22 February, 2016 - 23:00

    Bonjour les gens, Juste une petite astuce que des collègues m'ont montré. Ça vous sauvera pas forcément la vie mais c'est assez cool pour en faire un petit billet. Il s'agit de la possibilité d'afficher la météo dans son terminal comme un patron. Il s'agit d'un site web qui se charge de ça : wttr.in...

    Bonjour les gens,

    Juste une petite astuce que des collègues m'ont montré. Ça vous sauvera pas forcément la vie mais c'est assez cool pour en faire un petit billet.

    Il s'agit de la possibilité d'afficher la météo dans son terminal comme un patron. Il s'agit d'un site web qui se charge de ça : wttr.in qui affiche une page en ascii art.

    Pour l'avoir directement dans votre terminal, utilisez tout simplement le programme curl :

    curl wttr.in

    Et voilà le résultat :

    La météo de Montréal

    La localisation est trouvée automatiquement à l'aide de l'IP. Si vous souhaitez voir la météo d'une ville, par exemple Paris, procédez comme il suit :

    curl wttr.in/paris

    Et si vous aimez vraiment, vous pouvez l'ajouter à votre fichier .bashrc afin d'avoir la météo à chaque nouveau terminal.

    Voilà, bonne journée !

    • At chevron_right

      Météo dans la console

      raspbeguy · pubsub.gugod.fr / atomtest · Monday, 22 February, 2016 - 23:00

    Bonjour les gens, Juste une petite astuce que des collègues m'ont montré. Ça vous sauvera pas forcément la vie mais c'est assez cool pour en faire un petit billet. Il s'agit de la possibilité d'afficher la météo dans son terminal comme un patron. Il s'agit d'un site web qui se charge de ça : wttr.in...

    Bonjour les gens,

    Juste une petite astuce que des collègues m'ont montré. Ça vous sauvera pas forcément la vie mais c'est assez cool pour en faire un petit billet.

    Il s'agit de la possibilité d'afficher la météo dans son terminal comme un patron. Il s'agit d'un site web qui se charge de ça : wttr.in qui affiche une page en ascii art.

    Pour l'avoir directement dans votre terminal, utilisez tout simplement le programme curl :

    curl wttr.in

    Et voilà le résultat :

    La météo de Montréal

    La localisation est trouvée automatiquement à l'aide de l'IP. Si vous souhaitez voir la météo d'une ville, par exemple Paris, procédez comme il suit :

    curl wttr.in/paris

    Et si vous aimez vraiment, vous pouvez l'ajouter à votre fichier .bashrc afin d'avoir la météo à chaque nouveau terminal.

    Voilà, bonne journée !