2015-08-03 6 views
0

j'essaye de consommer des services de wcf en utilisant l'objet de savon d'acrobat javascript. Je l'ai pour travailler sans problèmes. ci-dessous est le code javascript qui fonctionne bien.comment préfixer l'espace de noms dans les demandes de savon d'acrobat javascript

var repliconCredentials = { 
    Username: "valid username", 
    Password: "valid password" 
}; 

var reqParam = { 
    'http://replicon.com/:activity': { 
     'http://replicon.com/:target': { 
      'http://replicon.com/:uri': null, 
      'http://replicon.com/:name': 'test activity' 
     }, 
     'http://replicon.com/:name': 'test activity', 
     'http://replicon.com/:code': null, 
     'http://replicon.com/:description': null 
    } 
}; 

var response = SOAP.request({ 
    cURL: "https://na2.replicon.com/services/ActivityService1.svc/soap", 
    oRequest: { "http://replicon.com/:PutActivity": reqParam }, 
    cAction: "http://replicon.com/IActivityService1/PutActivity", 
    oAuthenticate: repliconCredentials 
}); 

Ceci crée avec succès une "activité de test" dans Replicon.

Si vous remarquez le reqParam j'ai dû préfixer l'espace de noms pour chaque type dans la demande. Si je ne fais pas cela, la demande ne fonctionne pas. dans fiddler je vois que l'objet littéral reqParam est converti en requête xml.

  • Quelle est la meilleure façon de préfixer l'espace de noms? J'ai essayé la propriété cNamespace de la méthode SOAP.request et cela ne fonctionne pas car elle n'est pas applicable lors de l'utilisation du codage SOAP (par défaut).
  • existe-t-il une autre méthode recommandée pour créer et transmettre des demandes. Je construis un plugin acrobat en utilisant des objets javascript. Devrais-je essayer de passer au format XML natif? si c'est le cas, comment?

la requête simple (format json) ressemble à ci-dessous. { "activity": { "target": { "uri": null, "name": "test activity" }, "name": "test activity", "code": null, "description": null } }

l'url wsdl est https://na2.replicon.com/services/ActivityService1.svc?wsdl

Répondre

0

Je ne sais pas, je comprends très bien la question, donc à titre d'exemple, voici un appel typique que je voudrais faire à un serveur SharePoint. Pas au travail aujourd'hui mais j'ai beaucoup plus de ressources là si vous ne trouvez pas une réponse aujourd'hui ...

soapResponse = SOAP.request({ 
    cNamespace: 'http://schemas.microsoft.com/sharepoint/soap/' + soapAction + 'Response', 
    cURL: 'http://server/folder/_vti_bin/Lists.asmx', 
    oRequest: {soapValue: soapEnv}, 
    cAction: 'http://schemas.microsoft.com/sharepoint/soap/' + soapAction, 
    oAuthenticator: {UsePlatformAuth: 'true'}, 
    bEncoded: false, 
    cVersion: SOAPVersion.version_1_2, 
    cResponseStyle: SOAPMessageStyle.Message 
}); 
+0

merci pour votre réponse. Si vous regardez reqParam dans ma question j'ai dû préfixer l'espace de noms pour chaque type explicitement. Est-ce que l'espace de noms peut être mieux défini au lieu de répéter autant de fois? –