144 messaggi dal 26 febbraio 2007
Ciao,

Ho un progetto Core 2.1 in cui devo fare una chiamata SOAP, utilizzo HttpClient, però prima di fare la chiamata soap ho bisogno di sapere il targetNamespace

Per farlo devo chiamare il ?WSDL

Però il core non supporta più la sua lettura con la classe ServiceDescription

Ho provato a trattarlo come XmlDocument, però non so come poter tirare fuori questa informazione

<wsdl:definitions xmlns:impl="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/webservices" xmlns:error="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/webservices/errors" xmlns:sdmx="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/webservices" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd">
...<altro>....
..<altro>.....
....<altro>...
</wsdl:definitions>

In che modo posso tirar fuori il valore di targetNamespace?


Grazie millle
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Federico,
aspetta, non usare HttpClient, perché c'è un modo molto più semplice di consumare un servizio soap. Anche in Asp.net core puoi usare lo stack di WCF.
Leggi qui, il compito ti si semplifica parecchio (a meno che non hai a che fare con sogei).

https://aspdotnetcodehelp.wordpress.com/2017/03/27/how-to-access-wcf-service-in-asp-net-core-application/

ciao, Moreno.

Enjoy learning and just keep making
144 messaggi dal 26 febbraio 2007
Ciao,

Purtroppo ho il problema che gli endpoint dei soap sono definiti a runtime dall utente, quindi non posso aggiungere la referenza tramite i services da visual studio :(
11.886 messaggi dal 09 febbraio 2002
Contributi

Purtroppo ho il problema che gli endpoint dei soap sono definiti a runtime dall utente

A prescindere da quale sia l'endpoint... il WSDL è sempre lo stesso o cambia?

Se il WSDL è sempre lo stesso, è tutto quello che ti serve per generare le classi del client. Non ha importanza quale sia l'endpoint perché lo puoi passare come argomento quando crei un'istanza il client. Ti linko anche un altro metodo per creare il client usando dotnet-svcutil da riga di comando. Puoi fornire un percorso locale al WSDL, non per forza un percorso http.
https://docs.microsoft.com/it-it/dotnet/core/additional-tools/dotnet-svcutil-guide

ciao,
Moreno

Enjoy learning and just keep making
144 messaggi dal 26 febbraio 2007
Purtroppo cambiando endpoint anche il wsdl potrebbe cambiare..

Al momento visto che mi serve solo quel campo ho risolto prendendo la stringa con substring

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.