|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
Home → WINDEV 2024 → DSN - Déclaration Sociale Nominative - Soucis de requete |
DSN - Déclaration Sociale Nominative - Soucis de requete |
Started by PAT, Nov., 09 2015 10:35 AM - 14 replies |
| |
| | | |
|
| |
Posted on November, 09 2015 - 10:35 AM |
Bonjour a vous tous...
Je dois travailler sur la DSN (déclaration Sociale Nominative) et transférer une requête avec le contenu d'un fichier ..
J'ai créer un fichier Xml pour y placer mes balises en reprenant les posts deja présents sur le forum, cependant je bloque à la reéception du message de retour par la fonction HTMLVersTexte(HTTPDonneRésultat(httpRésultat))) qui me renvois ce message...
--------------------------- DSN_API --------------------------- Requête OK, résultat :
Bad Request
Your browser sent a request that this server could not understand. --------------------------- OK --------------------------- Lorsque je regarde le cahier des charges, il devrait me retourner un tout autre message de succes ou d'echec.
Si des âmes charitables ont déjà avancés sur ce dossier (DSN) je serai prêt a échangé également.
Cordialement
Ch_message est une chaîne Ch_entete est une chaîne
Ch_message=fChargeTexte("d:\toto.xml") Ch_entete=[ Host: net-entreprises.fr Content-Length: 4096 ]
SI HTTPRequête("https://services.net-entreprises.fr/authentifier/1.0/","",Ch_entete,Ch_message,"application/xml>")=Vrai ALORS Info("Requête OK, résultat :", ... HTMLVersTexte(HTTPDonneRésultat(httpRésultat))) SINON
Erreur(ErreurInfo()) FIN
|
| |
| |
| | | |
|
| | |
| |
Registered member 3 messages |
|
Posted on April, 24 2017 - 9:57 AM |
Bonjour Pat,
Je suis novice dans les requête HTTP et j'ai des soucis pour accéder à Net-Entreprise afin de récupérer les CRM. J'ai bien posté un exemple sur le forum, mais pas de réponses. Peux tu me donner des exemples je bloque sur cette requête d'authentification.
Tu peux si tu le veux répondre à mon post sur le forum ou me transmettre un mail à mon adresse gerard.kouby@logadom.fr
Avec mes remerciements. Gérard
-- Gérard |
| |
| |
| | | |
|
| | |
| |
Registered member 10 messages |
|
Posted on April, 28 2017 - 3:21 PM |
Bonjour,
Je test aussi en ce moment les envois de DSN via les API net-entreprises.
De mon coté je parviens à récupérer un token mais je bloque au moment de l'utiliser.
Voici mon code :
UrlApi est une chaîne UserAgent est une chaîne ParamHeader est une chaîne ParamPost est une chaîne ResRequete est une chaîne ResEntete est une chaîne TokenDsn est une chaîne
UrlApi = "https://services.net-entreprises.fr/authentifier/1.0/"
ParamPost = "<identifiants>" + ... "<siret>12345678901234</siret>" + ... "<nom>Wallace</nom>" + ... "<prenom>William</prenom>" + ... "<motdepasse>azerty42</motdepasse>" + ... "<service>25</service>" + ... "</identifiants>"
ParamHeader = "Content-Length: " + Taille(ParamPost) UserAgent = "Client-DSN (DsnBuilder/12.5; Paie.fr)"
SI httpRequête(UrlApi, UserAgent, ParamHeader, ParamPost, "application/xml") = Vrai ALORS ResEntete = HTTPDonneRésultat(httpEntête) TokenDsn = HTTPDonneRésultat(httpRésultat) UrlApi = "https://depot.dsnrg.net-entreprises.fr/deposer-dsn/1.0/" ParamPost = Compresse(fChargeTexte("D:\DSN\testArret.dsn")) ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + ... " Content-Encoding: gzip " + ... "Content-Length: " + Taille(ParamPost) SI httpRequête(UrlApi, UserAgent, ParamHeader, ParamPost, "text/plain") = Vrai ALORS ResEntete = HTTPDonneRésultat(httpEntête) ResRequete = HTTPDonneRésultat(httpRésultat) SINON Erreur("Erreur Requête Envoi : " + RC + ErreurInfo(errComplet)) FIN SINON Erreur("Erreur Requête Auth : " + RC + ErreurInfo(errComplet)) FIN
Le premier HTTPRequête fonctionne et me ramène bien un token dans le corps et le code 200 dans l'entête, par contre le deuxième HTTPRequête me ramène une erreur dans l'entête : "Jeton manquant ou invalide".
Si quelqu'un à une idée je suis preneur.
Merci d'avance. Julien. |
| |
| |
| | | |
|
| | |
| |
Posted on April, 29 2017 - 2:04 PM |
Bonjour,
Pour déboguer des webservices j'utilise des extensions Firefox ou Chrome qui permettent d'envoyer directement des requêtes et d'avoir le résultat "en live". Ca permet d'avoir en clair les chaines de caractères renvoyées et de voir ou cela bloque. Ca m'a sauvé la vie plusieurs fois.
Essayer ca, vous y verrez peut etre plus clair. |
| |
| |
| | | |
|
| | |
| |
Posted on April, 30 2017 - 12:02 AM |
Hello,
Le 28/04/2017 à 13:21, Julien a écrit :
//Renseignement du jeton obtenu dans l'entête de la requête http ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + ... " Content-Encoding: gzip " + ... "Content-Length: " + Taille(ParamPost) SI HTTPRequête(UrlApi, UserAgent, ParamHeader, ParamPost, "text/plain") = Vrai ALORS ResEntete = HTTPDonneRésultat(httpEntête) ResRequete = HTTPDonneRésultat(httpRésultat) SINON Erreur("Erreur Requête Envoi : " + RC + ErreurInfo(errComplet)) FIN SINON Erreur("Erreur Requête Auth : " + RC + ErreurInfo(errComplet)) FIN [/code] Le premier HTTPRequête fonctionne et me ramène bien un token dans le corps et le code 200 dans l'entête, par contre le deuxième HTTPRequête me ramène une erreur dans l'entête : "Jeton manquant ou invalide".
Si quelqu'un à une idée je suis preneur.
Comme ça, sans connaitre la norme, je dirais qu'il te manque les CRLF pour séparer les lignes d'entêtes dans ta variable /ParamHeader/.
ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + CRLF + ... " Content-Encoding: gzip " + CRLF +... "Content-Length: " + Taille(ParamPost) + CRLF
<html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> </head> <body bgcolor="#FFFFFF" text="#000000"> <div class="moz-cite-prefix">Hello,<br> <br> Le 28/04/2017 à 13:21, Julien a écrit : <br> </div> <blockquote cite="mid:2017e70a463ecc0e5463040390585ea3773d@news.pcsoft.fr" type="cite"> //Renseignement du jeton obtenu dans l'entête de la requête http <br> ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + ... <br> " Content-Encoding: gzip " + ... <br> "Content-Length: " + Taille(ParamPost) <br> <br> SI HTTPRequête(UrlApi, UserAgent, ParamHeader, ParamPost, "text/plain") = Vrai ALORS <br> ResEntete = HTTPDonneRésultat(httpEntête) <br> ResRequete = HTTPDonneRésultat(httpRésultat) <br> SINON <br> Erreur("Erreur Requête Envoi : " + RC + ErreurInfo(errComplet)) <br> FIN <br> <br> SINON <br> Erreur("Erreur Requête Auth : " + RC + ErreurInfo(errComplet)) <br> FIN <br> [/code] <br> Le premier HTTPRequête fonctionne et me ramène bien un token dans le corps et le code 200 dans l'entête, par contre le deuxième HTTPRequête me ramène une erreur dans l'entête : "Jeton manquant ou invalide". <br> <br> Si quelqu'un à une idée je suis preneur. <br> </blockquote> <p>Comme ça, sans connaitre la norme, je dirais qu'il te manque les CRLF pour séparer les lignes d'entêtes dans ta variable <i>ParamHeader</i>.</p> <p><br> </p> <p> http <br> ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + CRLF + ... <br> " Content-Encoding: gzip " + CRLF +... <br> "Content-Length: " + Taille(ParamPost) + CRLF<br> </p> <p> </p> </body> </html> |
| |
| |
| | | |
|
| | |
| |
Posted on May, 10 2017 - 12:20 PM |
Bonjour,
Je me remets sur les commandes DSN, un grand merci pour ton exemple pour l'authentification aux services DSN ça marche super. Mais je rencontre le même problème que toi lors du dépôt de fichier "Jeton invalide ou manquant" . J'ai essayé avec "CRLF" comme le préconisé LC mais j'ai toujours le même problème.
Peux être as tu continué dans tes essais, et cela fonctionne maintenant.
Comment as tu fais pour connaitre les indications à passer dans ParalHeader ? (Authorisation: DSNlogin jeton ......) ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + ... " Content-Encoding: gzip " + ... "Content-Length: " + Taille(ParamPost)
Si tu as d'autres indications me permettant de continuer moi aussi je suis preneur. Merci pour tes réponses.
Gérard |
| |
| |
| | | |
|
| | |
| |
Registered member 10 messages |
|
Posted on May, 16 2017 - 2:11 PM |
Bonjour,
J'ai par la suite trouvé la solution c'est tout con il me maquait les retours chariot dans l'entête html. Ce qui donne :
ParamHeader = "Authorization: DSNLogin jeton=" + TokenDsn + RC + ... " Content-Encoding: gzip " + RC + ... "Content-Length: " + Taille(ParamPost)
Et la ça fonctionne nickel.
Julien |
| |
| |
| | | |
|
| | |
| |
Posted on August, 03 2017 - 4:25 PM |
je veux déposer des DSN via l'API de net entreprise mais après l'exécution du code ci-dessus je reçois toujours l'erreur 401 jeton manquant ou introuvable. pouvez vous m'aider à résoudre ce problème je suis vraiment coincé
PROCEDURE DEPOT_DSN(sjeton est un Buffer) //sjeton est le jeton reçu lors de la connexion sNomDSN est une chaîne sMaDSN est une chaîne sNomDSN = fSélecteur("", "", "Sélectionnez un fichier...", "FICHIER TEXTE" + TAB + "*.txt", "*.txt") sMaDSN = Compresse(fChargeTexte(sNomDSN)) SI sMaDSN~="" ALORS //erreur //message RENVOYER Faux FIN Info(sjeton) cMaRequête1 est un httpRequête cMaRequête1..URL = "https://depot-edit.dsnrg.net-entreprises.fr/deposer-dsn/1.0/ " //cMaRequête1..AgentUtilisateur="Client-DSN (DsnTOOLS/12.5; msiformatique.fr)" cMaRequête1..AgentUtilisateur= "Client-DSN (DsnBuilder/12.5; Paie.fr)" cMaRequête1..ContentType = "text/plain"
cMaRequête1..Entête["Authorization"] = " DSNLogin jeton="+sjeton cMaRequête1..Entête["Content-Length"]= Taille(sMaDSN) //cMaRequête1..Utilisateur="dsn.net-entreprises.fr " //cMaRequête1..Entête["Host"]="depot-edit.dsnrg.net-entreprises.fr" cMaRequête1..Contenu=sMaDSN
cMaRéponse1 est un httpRéponse = HTTPEnvoie(cMaRequête1)
SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) RENVOYER Faux SINON Trace("//Contenu") Trace(cMaRéponse1..Contenu) Trace("//CodeEtat") Trace(cMaRéponse1..CodeEtat) Trace("//ContentType") Trace(cMaRéponse1..ContentType) Trace("//DescriptionCodeEtat") Trace(cMaRéponse1..DescriptionCodeEtat) Trace("//EntêteBrut") Trace(cMaRéponse1..EntêteBrut) FIN
RENVOYER Vrai |
| |
| |
| | | |
|
| | |
| |
Posted on August, 04 2017 - 3:49 PM |
Bonjour,
Attention, il faut que le buffer envoyé soit transformé au format gZip.
Ci-dessous un exemple de code qui fonctionne bien :
// Retour fiches de paramétrage cMaRequête..URL = "https://depot.dsnrg.net-entreprises.fr/deposer-dsn/1.0/" cMaRequête..AgentUtilisateur = "Client-DSN" cMaRequête..ContentType = "text/plain" cMaRequête..Méthode = httpPost cMaRequête..Entête["Authorization:"] = "DSNLogin jeton="+sMonJeton cMaRequête..Entête["Content-Encoding:"] = "gzip" MonBuffer est un Buffer MonBuffer = fChargeTexte(sNomFic) MonBuffer = gzipCompresse(MonBuffer) cMaRequête..Contenu = MonBuffer cMaRequête..IgnoreErreur = httpIgnoreCertificatInvalide
NB : je me suis construit un composant gZip à partir d'un exemple fourni par PCSOFT |
| |
| |
| | | |
|
| | |
| |
Registered member 342 messages Popularité : +30 (32 votes) |
|
Posted on August, 07 2017 - 9:59 AM |
Bonjour
Depuis la version 21 on peut directement utiliser la fonction Compresse de Windev avec le paramètre "compresseGZIP"
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Posted on August, 17 2017 - 10:51 AM |
Bonjour, merci pour vos réponses. Voici ce que j'ai fait mais ça ne marche toujours pas. Pour l'authentification c'est bon mais pour le dépôt il m'affiche erreur 401 JETON MANQUANT OU INVALIDE
sMaDSN = Compresse(fChargeTexte(sNomDSN),compresseGZIP) Info (sMaDSN) SI sMaDSN~="" ALORS
RENVOYER Faux FIN Info(sjeton)
cMaRequête1 est un httpRequête cMaRequête1..URL = "https://depot.dsnrg.net-entreprises.fr/deposer-dsn/1.0/ "
cMaRequête1..AgentUtilisateur= "Client-DSN " cMaRequête1..ContentType = "text/plain" cMaRequête1..Entête["Authorization:"] = " DSNLogin jeton="+sjeton cMaRequête1..Entête["Content-Length:"]= Taille(sMaDSN) cMaRequête1..Entête["Content-Encoding:"]= "gzip" cMaRequête1..Méthode = httpPost cMaRequête1..Contenu=sMaDSN cMaRequête1..IgnoreErreur = httpIgnoreCertificatInvalide cMaRéponse1 est un httpRéponse = HTTPEnvoie(cMaRequête1) |
| |
| |
| | | |
|
| | |
| |
Posted on October, 19 2017 - 9:00 AM |
Merci pour ces infos précieuses. j'ai cependant un soucis. je suis sous windev19 et je rencontre un soucis pour compresser au format gzip ( uniquement a partir de la 22 ?) si vous avez une solution , je prends ! d'avance Merci |
| |
| |
| | | |
|
| | |
| |
Posted on September, 06 2018 - 10:23 AM |
NESTINSAR a écrit :
Bonjour, merci pour vos réponses. Voici ce que j'ai fait mais ça ne marche toujours pas. Pour l'authentification c'est bon mais pour le dépôt il m'affiche erreur 401 JETON MANQUANT OU INVALIDE sMaDSN = Compresse(fChargeTexte(sNomDSN),compresseGZIP) Info (sMaDSN) SI sMaDSN~="" ALORS RENVOYER Faux FIN Info(sjeton) cMaRequête1 est un httpRequête cMaRequête1..URL = " https://depot.dsnrg.net-entreprises.fr/deposer-dsn/1.0/ " cMaRequête1..AgentUtilisateur= "Client-DSN " cMaRequête1..ContentType = "text/plain" cMaRequête1..Entête["Authorization:"] = " DSNLogin jeton="+sjeton cMaRequête1..Entête["Content-Length:"]= Taille(sMaDSN) cMaRequête1..Entête["Content-Encoding:"]= "gzip" cMaRequête1..Méthode = httpPost cMaRequête1..Contenu=sMaDSN cMaRequête1..IgnoreErreur = httpIgnoreCertificatInvalide cMaRéponse1 est un httpRéponse = HTTPEnvoie(cMaRequête1) |
| |
| |
| | | |
|
| | |
| |
Posted on September, 06 2018 - 10:39 AM |
| |
| |
| | | |
|
| | |
| |
Posted on October, 15 2018 - 3:19 PM |
Bonjour,
En utilisant la fonction HTTPrequête, on glisse un RC à la fin du token, comme derrière tous les paramètres du header. En utilisant la fonction et RC, je n'ai pas ton message.
Je te conseille soit de passer par la fonction et non la variable de type HTTPRequête, ou de tester en ajoutant un RC à ta chaine de token.
Cordialement |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|