IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

convertir commande cURL


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut convertir commande cURL
    Bonjour,

    Dans le cadre d'une migration, je constate que la commande curl est un alias du cmdlet Invoke-Webrequest.

    J'ai une commande cURL qui utilise un proxy et différents champs de formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl -v https://monurl:443/Buyer/filedownload?realm=USERNAME  -w "https" -F "from=$FROMDATEVALUE" -F "to='$TODATEVALUE'" -F "sharedsecret=XXXXX" -F "event=Export DATA"* -F clienttype="curl" -o "C:\chemin_vers_mon_path\Export.zip"'
    J'essaye de transposer cela avec la commande powershell :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $url="https://URL:443/Folders/filedownload?realm=USERNAME"
     
    $body = @{
    from="$FROMDATEVALUE";
    to="$TODATEVALUE";
    sharedsecret="XXXXXX";
    event="Export Documents";
    clienttype="curl";
    }
    $ExportFile="Export.zip"
     
    Invoke-WebRequest -Method Post -Uri $url -proxy http://10.135.0.29:8080 -body $body -OutFile $ExportFile

    Cela me génère une erreur 500 côté serveur, je pense que j'ai un problème de format de ma commande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Invoke-WebRequest : The remote server returned an error: (500) Internal Server Error.
    
    At D:\pathtomypowershell_ps1\ps_2.ps1:25 char:1
    + Invoke-WebRequest -Method Post -Uri $url -proxy http://IPPROXY:8080 -body $b ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
        + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut
    Bon alors je continue dans l'aide de cURL on trouve :

    -F, --form <name=content> Specify HTTP multipart POST data

    https://docs.microsoft.com/en-us/pow...w=powershell-7

    C'est pourquoi j'ai pensé à l'option -Form au lieu de body, la syntaxe semble être la suivante

    Example 6: Simplified Multipart/Form-Data Submission

    Some APIs require multipart/form-data submissions to upload files and mixed content. This example demonstrates updating a user profile.

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $Uri = 'https://api.contoso.com/v2/profile'
    $Form = @{
        firstName  = 'John'
        lastName   = 'Doe'
        email      = 'john.doe@contoso.com'
        avatar     = Get-Item -Path 'c:\Pictures\jdoe.png'
        birthday   = '1980-10-15'
        hobbies    = 'Hiking','Fishing','Jogging'
    }
    $Result = Invoke-RestMethod -Uri $Uri -Method Post -Form $Form
    Mais lorsque j'utilise cela j'ai un message d'erreur qui m'indique car je ne suis qu'en Powershell V5 ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Invoke-WebRequest : A parameter cannot be found that matches parameter name 'Form'.
    At line:25 char:45
    + curl -Uri $url -Method 'POST' -Proxy $proxy -Form $form -OutFile $ExportFilePath
    +                                             ~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Discussions similaires

  1. [XL-2016] Convertir une commande Curl en URL
    Par lololulu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/06/2019, 15h24
  2. Installation de la commande Curl sous windows
    Par anassss dans le forum Windows
    Réponses: 1
    Dernier message: 18/07/2011, 14h31
  3. [perl] commande curl
    Par buzz24 dans le forum Web
    Réponses: 4
    Dernier message: 26/05/2009, 14h59
  4. qui connait la commande cURL
    Par BenHan2008 dans le forum Linux
    Réponses: 2
    Dernier message: 02/09/2008, 12h10
  5. [cURL] Lancer une commande curl dans un script php
    Par griese dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 22/03/2007, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo