Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 08/04/2016, à 21:54

chris_wafer

[Résolu] Curl et connexion

Bonjour,

Je chercher à utiliser curl pour me connecter au site suivant : http://demo.redmine.org/login
J'ai essayé ça, mais ça ne marche pas :
  curl -v -d "username=xxxxxxxx&password=xxxxxxxx&submit=login" http://demo.redmine.org/login

Quelqu'un a une idée?

Merci d'avance.

Dernière modification par chris_wafer (Le 12/04/2016, à 20:37)

Hors ligne

#2 Le 08/04/2016, à 23:41

carreti

Re : [Résolu] Curl et connexion

Hello,

c'est très simple ... Il suffit d'ouvrir les outils de développement de ton navigateur Chrome, Firefox ou autre, d'aller dans l'onglet réseau et de se loguer. Éventuellement cocher la case "preserve log" ... Dans la liste des différents fichiers qui apparaissent, qui constituent la page et qui correspondent chacun à une url, il y aura un "login" sans extension. Un clic droit sur cet élément fera apparaître le menu contextuel qui normalement devrait comporter un choix "copy as curl (bash)" ...

1460223980.jpg


C'est plus ou moins l'équivalent cURL de la requète HTTP lancé par le navigateur et tu verras qu'il y a un peu plus de chose :

curl 'http://demo.redmine.org/login' -H 'Pragma: no-cache' -H 'Origin: http://demo.redmine.org' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: no-cache' -H 'Referer: http://demo.redmine.org/login' -H 'Cookie: _redmine_session=kjfdqlkjflqkjfqlkjfqlksjf' -H 'Connection: keep-alive' --data 'utf8=%E2%9C%93&authenticity_token=IWPN%2Bnmkfmqkfq%2Bnk%2Bfqfqs%2Bmkdmsqkdmkarg%3D%3D&username=test&password=ttssttt&login=Connexion+%C2%BB' --compressed

Ensuite cela devient moins simple :-) Beaucoup de ces paramètres et entêtes sont optionnels, certains cookies aussi parfois, mais d'autre fois non, cela dépends de ce que le développeur check ... Donc ajouter -v pour passer en mode "verbeux" et voir les échanges d'entêtes client/serveur, utiliser aussi -c cookie.txt -b cookie.txt pour gérer les cookies ... Comme il y a probablement une redirection après une authentification réussie ne pas oublier -L (devrait apparaître dans les entêtes en
HTTP_302 ou HTTP_301) pour que cURL charge la page finale d'accueil ... Et si tu tombes sur 403 c'est pas bon ... List of HTTP status codes

Ensuite il faut probablement faire du reverse engineering sur la page, là il y a une histoire de authenticity_token dans les datas, j'ai pas ouvert le source de la page mais certaines pages utilisent des chalenge/response codés en JS pour des raisons de sécurité (vol de session, je crois ... le site est en http ...) et/ou compliquer l'utilisation de robots. Là 2 solutions : soit il est possible de le trouver dans (le code de) la page (ou dans celui d'un .js lié, ou une réponse ajax xhr ou json) et de le renvoyer, soit il faut le calculer et là c'est plus pénible ...

Bref, il faut lire le source de la page, le comprendre et faire ce qu'attends le serveur du client, tester la tolérance à l'erreur de leurs scripts. Des fois on se rends compte que le développeur du site teste rien, et c'est tant mieux, ça permet d'aller ou on veut en faisant le minimum avec les cookies et les requêtes POST  ...

Après il y a possibilités d'écrire des scripts pour des navigateurs, par exemple, en vbScript avec MSIE c'est très simple ... Cela évite d'avoir à gérer le javascript ou les cookies en shell script, quand il y a des finesses, et de "parser" les pages tranquillement sans que le serveur se rende compte qu'il a à faire à un robot, je crois qu'il existe des solutions comparables pour Firefox ...


Modération : merci d'utiliser des images de petite taille (300x300) ou des miniatures pointant sur ces images (Des hébergeurs comme Toile Libre ou TDCT'Pix le permettent).

Dernière modification par carreti (Le 09/04/2016, à 18:47)


Utilisateur et administrateur de Linux et d'Unix (depuis le siècle dernier) et plus précisément ces dernières années de  Linux Gentoo et de Windows 10 ...
Je cherche du boulot sur Paris et RP Ouest en administration système ou mieux dans la tierce maintenance applicative, middleware, base de données, flux ...

Hors ligne

#3 Le 11/04/2016, à 20:28

chris_wafer

Re : [Résolu] Curl et connexion

MERCI beaucoup!!!
C'est effectivement beaucoup plus simple comme cela.
MERCI pour cet excellent tutoriel.

Hors ligne

#4 Le 11/04/2016, à 20:38

chris_wafer

Re : [Résolu] Curl et connexion

Il y a des numéros bizarres dans la requête généré par curl; comme si c'était des tokens générés.
Je n'arrive pas à voir comment je dois faire pour les recréer?

Merci d'avance pour ton aide.

Hors ligne

#5 Le 11/04/2016, à 21:02

carreti

Re : [Résolu] Curl et connexion

Hello,

_redmine_session est le session ID, il est échangé avec le navigateur et peut être récupéré automatiquement par l'activation de la gestion des cookies de cURL. Suivant sa durée de vie, une fois authentifié proprement il pourra probablement servir à se reconnecter sans avoir à repasser à chaque fois par le login.
cURL gère cela avec -b / -c et le cookie.txt. Vérifier, éventuellement, que les paramètres des cookies s'inscrivent correctement dans le cookie.txt et qu'ils sont correctement échangés en réception et en émissions dans les entêtes transitant entre le client et le serveur et visualisables par l'option -v.

authenticity_token (j'ai été voir dans le code) est un input hidden qu'il faut greper (et/ou sed'er ou awk'er mais un "grep -o" bien pondu devrait suffire) dans le code de la page "login" pour le renvoyer dans les --data. Il y a 2 paramètres comme ça (utf8 et authenticity_token) qui doivent être renvoyés en plus du login/password (username et  password) et peuvent nécessiter d'être url_encodé avant, mais pas forcément ... (à voir si l'authentification plante) ...

authenticity_token apparaît en premier lieu dans les meta balises envoyées dans le code de la page :

  1. "csrf-param" pour le nom du paramètre

  2. "csrf-token" pour la valeur

Puis un algorithme de hachage lui est certainement appliqué avant de le renvoyer en input hidden ... Le serveur doit probablement contrôler que la valeur renvoyée (avec éventuellement la concaténation de celle d'autres paramètres comme le cookie) corresponds à celle attendue ...

Sur le plan du fonctionnement général, comme le ferait le navigateur : 2 requêtes HTTP indispensables doivent être envoyées par cURL :

  1. Une première (en GET) pour ouvrir la page de login, acquérir les cookies, le formulaire à compléter et les valeurs cachées à renvoyer.

  2. Une deuxième (en POST) pour renvoyer le formulaire complété  (--data), les champs cachés, les cookies sans oublier une option -L  dans la commande de cURL pour suivre la redirection vers la page d'accueil des utilisateurs correctement authentifiés qui pourrait suivre si l'authentification passe ...

PS :
j'ai pondu ça vite fait, à titre d'exemple mais bon, je ne suis pas certain que cela fonctionne. Je n'ai pas de compte là bas ...
J'ai peur qu'il y ait une ruse au niveau de l'authenticity_token ... Un listener caché en JS ou je ne sais quoi ...

#!/bin/bash
# Script d'essai de login 
#
# Renseigner les variables correctement 
# TODO : si la version installée de cURL (curl --help) le permets, utiliser "--data-urlencode" en lieu et place de "--data" pour
# l'envoi du formulaire ...
#

# VARIABLES A RENSEIGNER
USERNAME="toto"
PASSWORD="password"
UTF8="✓"
URL="http://demo.redmine.org/login"

#
# Pour debug / developpement
# (décommenter #DEBUG_MODE="True" pour passer en mode "DEBUG")
DEBUG_MODE="False"
#DEBUG_MODE="True"

# Entêtes client (la plupart doivent être inutiles mais comme on les connait ...)
H1="Pragma: no-cache"
H2="Accept-Encoding: gzip, deflate, sdch"
H3="Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4"
H4="Upgrade-Insecure-Requests: 1"
H5="User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
H6="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
H7="Cache-Control: no-cache"
H8="Connection: keep-alive"
# Entête spécifique à l'envoie du formulaire (2 ème requète cURL du script)
H9="Content-Type: application/x-www-form-urlencoded"
H10="Referer: $URL"

# Cookies ...
COOKIE_JAR_FILE="./cookies.txt"

# On arrive sur la page login ... qui sera stockée dans une variable ($HTML)
HTML=$(curl -c $COOKIE_JAR_FILE -b $COOKIE_JAR_FILE -v "$URL" -H "$H1" -H "$H2" -H "$H3" -H "$H4" -H "$H5" -H "$H6" -H "$H7" -H "$H8" --compressed)

# Pour DEBUG
if [ "$DEBUG_MODE" == "True" ]; then
  echo "$HTML" > page.html
fi

# Extraction de la valeur d'authenticity_token dans le champ input hidden ...
TOKEN=$(grep -o '[^"]*==' <<< $HTML | tail -n1)

if [ "$DEBUG_MODE" == "True" ]; then
  echo "======================================"
  echo "TOKEN=$TOKEN"
  echo "UTF8=$UTF8"
  echo "USERNAME=$USERNAME"
  echo "PASSWORD=$PASSWORD"
  echo "======================================"
fi

# Validation du formulaire (+ mise en place gestion suivi following : option -L) avec les valeurs trouvée en variables ... (redirigé vers out.html)
curl -c $COOKIE_JAR_FILE -b $COOKIE_JAR_FILE -L -v "$URL" -H "$H1" -H "$H2" -H "$H3" -H "$H4" -H "$H10" -H "$H9" -H "$H5" -H "$H6" -H "$H7" -H "$H8" --data "utf8=$UTF8&authenticity_token=$TOKEN&username=$USERNAME&PASSWORD=$PASSWORD&login=Connexion+%C2%BB" --compressed > out.htm

PS2 :
Si jamais il s’avère nécessaire d'URL encoder certaines infos comme le token, simplement substituer --data-urlencode à --data dans la requête cURL de POST du formulaire (mais il sera sans doute aussi nécessaire dans ce cas de "urldecoder" les éventuelles données --data qui seraient déjà "url encodées" comme par exemple "%C2%BB" en fin de la ligne) ...

http://stackoverflow.com/questions/2965 … rl-command

PS3 :
une fois le fonctionnement du script validé on peut substituer sans incidence, le mode "silent" -s au mode "verbeux" -v pour éviter toutes les sorties cURL devenues superflues ...

Dernière modification par carreti (Le 12/04/2016, à 08:00)


Utilisateur et administrateur de Linux et d'Unix (depuis le siècle dernier) et plus précisément ces dernières années de  Linux Gentoo et de Windows 10 ...
Je cherche du boulot sur Paris et RP Ouest en administration système ou mieux dans la tierce maintenance applicative, middleware, base de données, flux ...

Hors ligne

#6 Le 12/04/2016, à 20:36

chris_wafer

Re : [Résolu] Curl et connexion

Et voici mon script final :

#!/bin/bash

gMonsite="http://demo.redmine.org/login"
gPaheAAtteindre="http://demo.redmine.org/my/page"
gLogin="xxxxxxxx"
gPass="xxxxxxxx"

gFichierCookie="/tmp/cookie"


urlencode() {
    local length="${#1}"
    for (( i = 0; i < length; i++ )); do
        local c="${1:i:1}"
        case $c in
            [a-zA-Z0-9.~_-]) printf "$c" ;;
            *) printf '%%%02X' "'$c"
        esac
    done
}

urldecode() {
    local url_encoded="${1//+/ }"
    printf '%b' "${url_encoded//%/\\x}"
}


# 1/ On récupère un 1er cookie + authentification
gTokenAuthentification=`curl "${gMonsite}" -c "${gFichierCookie}" -s 	|\
          grep csrf-token                				|\
 	  sed -e 's/.*content="//ig' -e 's/".*//ig'`
gTokenAuthentification=$(urlencode "${gTokenAuthentification}")

# 2/ On s'authentifie sur le site
curl "${gMonsite}" \
 -s \
 -b "${gFichierCookie}" \
 -c "${gFichierCookie}" \
 --data "authenticity_token=${gTokenAuthentification}" \
 --data "username=${gLogin}" \
 --data "password=${gPass}" \
 --data "login=Connexion" \
 > /dev/null

# 3/ On va à la page correspondante, en faisant un grep
curl "${gPaheAAtteindre}" \
 -s \
 -b "${gFichierCookie}" |\
grep -c "129254"

Ca marche nickel!!! Merci encore, car je ne maitrisais vraiment rien avant!!!
MERCI!!!

Hors ligne

#7 Le 13/04/2016, à 00:46

carreti

Re : [Résolu] Curl et connexion

Yo,

bon bah si ça marche c'est cool


Utilisateur et administrateur de Linux et d'Unix (depuis le siècle dernier) et plus précisément ces dernières années de  Linux Gentoo et de Windows 10 ...
Je cherche du boulot sur Paris et RP Ouest en administration système ou mieux dans la tierce maintenance applicative, middleware, base de données, flux ...

Hors ligne

#8 Le 20/04/2016, à 21:24

chris_wafer

Re : [Résolu] Curl et connexion

Bonjour,

Alors j'essaye de faire le même script sur un serveur où c'est installé en https. Donc je fais un curl -k à chaque fois.
Le problème, c'est que le retour semble être du binaire ou est crypté.
Que dois-je faire?

Hors ligne

#9 Le 21/04/2016, à 10:03

carreti

Re : [Résolu] Curl et connexion

Hello,

par défaut le serveur te renvoie certainement le fichier compressé même sans la présence du header spécifiant que le gzip est accepté par le navigateur (ici cURL) , ce qui AMHA n'est pas lié au HTTPS mais plus à la configuration mime du serveur, mais bon je m'avance peut-être un peu ...

J'utilise indifféremment cURL avec http ou https et je n'ai jamais utilisé l'option -k. Les certificats sont normalement, un peu comme pour les cookies dans un mode de fonctionnement normal, gérés de façons pratiquement transparente par cURL si il a été compilé avec les options qui conviennent (mais dans le cas contraire cURL meuglerait qu'il ne connait pas HTTPS). Je crois que l'option -k est plus utile dans le cas ou le certificat du site est corrompu (après une migration de serveur par exemple).

L'option --compressed à la fin de la ligne d'appel de cURL devrait résoudre ton problème, en spécifiant clairement aux 2 acteurs de la transaction (le serveur et le client) le type de données échangées et implicitement le traitement qu'elles doivent subir (coté client) ...

Par ailleurs, j'ai vu que tu utilisais le token fournit en entête HTML en meta-balise. personnellement j'aurais choisi celui du input hidden qui doit être celui attendu par le serveur, il est fort possible que la version de test, teste uniquement la présence du paramètre sans tester sa valeur ... Après, je ne vois pas trop l'utilité de ce paramètre dans une utilisation HTTPS, le chalenge/response visant généralement à éviter un man-in-the-midlle mais dans le cadre d'une authentification HTTP pure, après la sécurité, c'est malheureusement pas un de mes points forts en info.

Dernière modification par carreti (Le 21/04/2016, à 10:33)


Utilisateur et administrateur de Linux et d'Unix (depuis le siècle dernier) et plus précisément ces dernières années de  Linux Gentoo et de Windows 10 ...
Je cherche du boulot sur Paris et RP Ouest en administration système ou mieux dans la tierce maintenance applicative, middleware, base de données, flux ...

Hors ligne

#10 Le 07/01/2017, à 22:52

chris_wafer

Re : [Résolu] Curl et connexion

J'aimerais faire la même chose pour me connecter au site LeBonCoin avec mon login et pass.
Mais je n'arrive pas à bien voir la commande curl.
On peut m'aider?

Merci.

Hors ligne

#11 Le 07/02/2017, à 23:20

chris_wafer

Re : [Résolu] Curl et connexion

Une idée?

Hors ligne

#12 Le 17/02/2017, à 04:14

chris_wafer

Re : [Résolu] Curl et connexion

J'y arrive à peu près avec le bon coin.
Mais j'arrive à la commande suivante :

curl --silent \
-b /tmp/cookies \
-c /tmp/cookies \
'https://www.leboncoin.fr/ai/verify/0' \
-H 'Host: www.leboncoin.fr' \
-H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
-H 'Accept-Language: en-US,en;q=0.5' \
--compressed \
-H 'Referer: https://www.leboncoin.fr/ai/form/0' \
-H 'Connection: keep-alive' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'Content-Type: multipart/form-data; boundary=---------------------------1855287202331431558583870453' \
--data-binary $'-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="check_type_diff"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="category"\r\n\r\n35\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="company_ad"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="type"\r\n\r\ns\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="subject"\r\n\r\nVend places concert Muse\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="brand"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="regdate"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="mileage"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="fuel"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="gearbox"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="cubic_capacity"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="real_estate_type"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="furnished"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="square"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="rooms"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="energy_rate"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="ges"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="capacity"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="swimming_pool"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="bedrooms"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="clothing_type"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="clothing_st"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="shoe_type"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="shoe_size"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="baby_age"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="jobcontract"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="jobfield"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="jobduty"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="jobexp"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="jobstudy"\r\n\r\n0\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="jobtime"\r\n\r\n1\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="animal_offer_nature"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="animal_race"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="animal_age"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="animal_litter"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="animal_litter_number"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="animal_identification"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="datepicker_begin_date"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="availability_begin_date"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="datepicker_end_date"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="availability_end_date"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="availability_price"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="price_min"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="price_max"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="body"\r\n\r\nJe vends des places pour le concert. A venir chercher sur place.\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="custom_ref"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="price"\r\n\r\n45\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="charges_included"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="fai_included"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image0"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image1"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image2"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image3"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image4"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image5"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image6"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image7"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image8"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="image9"; filename=""\r\nContent-Type: application/octet-stream\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="location_p"\r\n\r\nCenon\xa033150\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="zipcode"\r\n\r\n33150\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="city"\r\n\r\nCenon\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="region"\r\n\r\n2\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="dpt_code"\r\n\r\n33\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="address"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="meeting_point_id"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="accept_localisation"\r\n\r\non\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="latitude"\r\n\r\n44.8583\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="longitude"\r\n\r\n-0.53053\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="geo_source"\r\n\r\ncity\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="geo_provider"\r\n\r\nlbc\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="adreply_type"\r\n\r\n1\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="adreply_redirect"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="name"\r\n\r\nmon_pseudo\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="siren"\r\n\r\n\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="email"\r\n\r\ntutu@toto.com\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="phone"\r\n\r\n0606060606\r\n-----------------------------1855287202331431558583870453\r\n\r\nContent-Disposition: form-data; name="no_salesmen"\r\n\r\n1\r\n---------------------------1855287202331431558583870453--\r\n'

D'où vient ce numéro 1855287202331431558583870453 dans binary ?

Hors ligne

#13 Le 17/02/2017, à 14:19

chris_wafer

Re : [Résolu] Curl et connexion

Quelqu'un peut m'aider?

Hors ligne