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

Services Web Discussion :

Envoi de fichier


Sujet :

Services Web

  1. #1
    Invité
    Invité(e)
    Par défaut Envoi de fichier
    Bonjour,
    À l'aide d'un web service, je dois envoyer un fichier au format ZIP, j'ai pour ça une doc qui m'a été fournie (entièrement en espagnol par contre, langue que je ne maitrise pas spécialement) qui explique le procédé mais je trouve qu'il n'est pas suffisamment explicite, et j'aimerais me tourner vers vous, afin de mieux cerner la chose, et surtout, savoir comment m'y prendre. Le projet se fait en VB.NET
    Pour envoyer mon fichier ZIP, 2 façons différentes excitent, qui sont un envoi synchrone (envoi direct) et asynchrone (en différé), l'envoi se fera une fois connecté au WSSE UsernameToken:
    - Dans le cadre de l'envoi synchrone, on utilise une fonction qui s'appelle SendBill, mon enveloppe SOAP doit être formatée de la manière suivante (copier coller de la doc qui m'a été fournie):

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.sunat.gob.pe" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
    <soapenv:Header> 
    <wsse:Security> 
    <wsse:UsernameToken> 
    <wsse:Username>20100066603MODDATOS</wsse:Username> 
    <wsse:Password>moddatos</wsse:Password> 
    </wsse:UsernameToken>
    </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
    <ser:sendBill> 
    <fileName>20100066603-01-F001-1.zip</fileName> 
    <contentFile>cid:20100066603-01-F001-1.zip</contentFile> 
    </ser:sendBill> 
    </soapenv:Body> 
    </soapenv:Envelope>

    Mon fichier app.config est formaté ainsi, par contre, je n'ai pas le nom de mon fichier à envoyer qui s'y trouve, comment faire?
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
        <system.serviceModel>
            <bindings>
               <basicHttpBinding>
                  <binding name="BillServicePortBinding" closeTimeout="00:01:00"
                        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                        useDefaultWebProxy="true">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                        <security mode="Transport">
                            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
                            <message clientCredentialType="UserName" algorithmSuite="Default" />
                        </security>
                    </binding>
                  <binding name="secured">
                    <security mode="TransportWithMessageCredential">
                      <message clientCredentialType="UserName" />
                    </security>
                  </binding>
                </basicHttpBinding>
            </bindings>
            <client>
              <endpoint address="https://www.sunat.gob.pe:443/ol-ti-itcpgem/billService"
                  binding="basicHttpBinding" bindingConfiguration="BillServicePortBinding"
                  contract="Production.billService" name="BillServicePort" >
                <headers>
                  <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                    <wsse:UsernameToken >
                      <wsse:Username>Identifiant</wsse:Username>
                      <wsse:Password Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText'>Mot de passe</wsse:Password>
                    </wsse:UsernameToken>
                  </wsse:Security>
                </headers>
              </endpoint>
            </client>
        </system.serviceModel>

    - Dans le cadre de l'envoi asynchrone, 2 fonctions sont à utiliser, qui sont sendSummary et getStatus: la 1ere est utilisée afin de récupérer un numéro de ticket, qui va ainsi être utilisé dans la seconde, dans ma doc, l'enveloppe SOAP doit être formatée ainsi, si on fait appel à la fonction sendSummary:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.sunat.gob.pe" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
    <soapenv:Header> 
    <wsse:Security> 
    <wsse:UsernameToken> 
    <wsse:Username>20100066603MODDATOS</wsse:Username> 
    <wsse:Password>moddatos</wsse:Password> 
    </wsse:UsernameToken> 
    </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
    <ser:sendSummary> 
    <fileName>20100066603-RC-20110522-1.zip</fileName> 
    <contentFile>cid:20100066603-RC-20110522-1.zip</contentFile> 
    </ser:sendSummary> 
    </soapenv:Body> 
    </soapenv:Envelope>


    Si on fait appel à la fonction getStatus, l'enveloppe SOAP doit être formatée ainsi:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.sunat.gob.pe" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
    <soapenv:Header> 
    <wsse:Security>
    <wsse:UsernameToken> 
    <wsse:Username>20100066603MODDATOS</wsse:Username> 
    <wsse:Password>moddatos</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
    <ser:getStatus> 
    <ticket>201100000011227</ticket> 
    </ser:getStatus> 
    </soapenv:Body> 
    </soapenv:Envelope>

    Pour l'instant, je n'ai pas encore touché au mode asynchrone, de toute manière, je ne peux rien tester en ce moment même, je demande à notre client de me fournir un fichier précis, sans ça, rien ne peut être fait. Pouvez vous m'aider à formater mon fichier app.config comme il se doit, et aussi, comment faire pour modifier des valeurs de manière dynamiques, qui sont l'identifiant et le mot de passe pour se connecter au WSSE UsernameToken, le nom du fichier ZIP à envoyer, le numéro de ticket récupéré lors de l'envoi asynchrone, ainsi que le contenu du fichier ZIP à envoyer en base 64, merci.

    PS: la doc que je me sers est accessible à l'adresses suivante: https://s3.amazonaws.com/insc/Compro...rogramador.pdf
    Concernant le projet, je devrais générer un exécutable .EXE, cela n'aura-t-il aucune incidence concernant la mise à jour des données dans le fichier app.config?
    Dernière modification par Invité ; 05/05/2014 à 11h50.

Discussions similaires

  1. [debutant] envoi de fichier
    Par djchow dans le forum MFC
    Réponses: 8
    Dernier message: 21/03/2005, 16h57
  2. [HTTP] Envoi de fichiers par http
    Par Delendial dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 03/09/2004, 09h37
  3. [Débutant] Envoi de fichier par socket
    Par zapho dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 26/05/2004, 18h58
  4. [C#] Envoi de fichier xml
    Par minnieBis dans le forum ASP.NET
    Réponses: 16
    Dernier message: 25/05/2004, 14h28
  5. [Socket]envoie de fichier!!!
    Par SamDaKap dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/11/2002, 08h07

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