J'utilise ce même code pour me connecter aux WS de ma banque. :)
Have fun Bruno On Nov 21, 2011, at 11:29 AM, Frédérick Sauvage wrote: > Oui je cherches à utiliser leur WebService ... je vais essayer de me > débrouiller avec cela et la doc de httparty tant bien que mal > > Le 21 novembre 2011 17:10, Bruno Muscolino <[email protected]> a écrit : > En gros ce que tu cherches a faire c'est de te connecter sur leur page et > utiliser leur WebServices? > > En ruby: (voir doc do httparty pour determiner ou non si tu veux qqch dans la > hash query) > > require 'rubygems' > require 'httparty' > > class LoginSomeWhere > include HTTParty > base_uri "https://YOURURL.COM" > headers "content-type" => "application/x-www-form-urlencoded" > > def self.login username, password > post "/", :query => { }, :body => { :username => username, :password => > password } > end > end > > puts LoginSomeWhere.login "username", "password" > > Ca > > On Nov 21, 2011, at 10:06 AM, Frédérick Sauvage wrote: > > > Bonjour, > > > > Cherchant à créer un sceau d'horodatage via Universign, je me retrouve > > face à 3 codes pour réaliser cela ... évidemment nulle trace de Ruby. > > Je cherche actuellement comment m'adapter au Ruby (en partant du Java > > que je maitrise mieux), mais je rencontre des difficultés. > > > > Une bonne âme pourrait-elle m'aider ? > > > > Voici les différents codes : > > > > En Python : > > > > #!/usr/bin/python > > > > import urllib; > > import urllib2; > > import hashlib; > > import base64; > > > > # first we construct the parameters for the request > > data = {}; > > data['hashAlgo'] = "SHA256"; > > data['withCert'] = "true"; > > data['hashValue'] = hashlib.sha256(dataToTimestamp).hexdigest(); > > params = urllib.urlencode(data); > > > > # basic HTTP authentication is needed to access this service > > headers = {}; > > auth = base64.encodestring(username + ":" + password); > > headers["Authorization"] = "Basic " + auth; > > > > # then the request itself > > request = urllib2.Request("https://ws.universign.eu/tsa/post/", > > params, headers); > > > > # all is ready, the request is made > > response = urllib2.urlopen(request); > > tsp = response.read(); > > > > > > > > En PHP : > > > > $hashedDataToTimestamp = hash('sha256', $dataToTimestamp); > > $dataToSend = array ('hashAlgo' => 'SHA256', 'withCert' => > > 'true', 'hashValue' => $hashedDataToTimestamp); > > $dataQuery = http_build_query($dataToSend); > > $context_options = array ( > > 'http' => array ( > > 'method' => 'POST', > > 'header'=> "Content-type: application/x-www-form- > > urlencoded\r\n" > > ."Content-Length: " . strlen($dataQuery) . "\r\n" > > ."Authorization: Basic ".base64_encode($login.':'. > > $password)."\r\n", > > 'content' => $dataQuery > > ) > > ); > > > > $context = stream_context_create($context_options); > > $fp = fopen("https://ws.universign.eu/tsa/post/", 'r', false, > > $context); > > $tsp = stream_get_contents($fp); > > > > > > > > En Java : > > > > static InputStream doTsp(String login, String pwd, String hash, > > String algo) > > throws Exception > > { > > URLConnection conn = new URL("https://ws.universign.eu/tsa/ > > post/").openConnection(); > > conn.setDoOutput(true); > > conn.setDoInput(true); > > String authString = login + ":" + pwd; > > String authStringEnc = Base64.encode(authString); > > conn.setRequestProperty("Authorization", "Basic " + > > authStringEnc); > > > > OutputStream out = conn.getOutputStream(); > > String params = "hashAlgo=" + URLEncoder.encode(algo, "UTF-8") > > + "&hashValue=" > > + URLEncoder.encode(hash, "UTF-8") + "&withCert=" + > > URLEncoder.encode("false", "UTF-8"); > > out.write(params.getBytes("UTF-8")); > > out.flush(); > > > > return conn.getInputStream(); > > } > > > > > > Merci d'avance, > > Frédéric > > > > -- > > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > > Google Groups. > > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > > [email protected] > > Pour résilier votre abonnement envoyez un e-mail à l'adresse > > [email protected] > > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] > > > > -- > SAUVAGE Frédéric > > > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
