Avatar billede casper_skovgaard Nybegynder
09. februar 2005 - 13:01 Der er 5 kommentarer og
2 løsninger

Post xml dokument til web service og modtag nyt xml

Jeg har en web form som udfyldes med data. Når formen submittes skal der genereres et xml dokument, som sendes til en ekstern web service. Web servicen behandler dokumentet og sender et nyt xml dokument retur. Det nye dokument gemmes så i en mysql database og der vises et link til dokumentet på web formen.

Jeg har brug for hjælp til følgende:
1. Hvordan laver jeg xml dokumentet?
2. Hvordan sender jeg xml til web servicen?
3. Hvordan modtager jeg et nyt xml dokument?
Avatar billede arne_v Ekspert
09. februar 2005 - 13:09 #1
re 1)

Lav et XmlDocument og Save det til en StringWriter.

re 2 & 3)

Normalt vil man kalde en web service som kald uden at bekymre sig om XML.

Men man kan selvfølgelig også gøre det hele manuelt. Du kan jo sende/receive
med/fra en helt normal web request.
Avatar billede casper_skovgaard Nybegynder
09. februar 2005 - 13:17 #2
Du har vel ikke et par eksempler.

Jeg har ikke arbejdet med web services før, så du kan vel ikke lige forklare hvordan man normalt kalder en web service. Den eksterne web service er ikke lavet endnu, og skal ikke laves af mig, jeg har dog indflydelse på hvordan den laves, så hvis der er en bedre måde at gøre det på, vil jeg gerne høre om den.
Avatar billede arne_v Ekspert
09. februar 2005 - 13:22 #3
Det må der være masser af eksempler på.

Jeg har f.eks. skrevet http://www.eksperten.dk/artikler/516 som handler
om web services mellem .NET og Java. Hvis du læser den vil du se at der
ikke er skyggen af XML at se i koden (selvom det bliver bliver brugt
XML som transport format).
Avatar billede casper_skovgaard Nybegynder
09. februar 2005 - 14:08 #4
ok fint eksempel, hvis jeg har forstået det rigtigt virker en web service altså på samme måde som en klasse, du opretter et object og kalder en metode på objektet og får en retur værdi.

Min retur værdi skal bare være en fil, eller ihvertfald indholdet af filen, som jeg så kan gemme i en fil. Jeg kender nemlig ikke strukturen og indholdet af filen.

I eksemplet tester du web servicen med følgende kode:
        ServerService ss = new ServerService();
        Console.WriteLine(ss.add(12, 34));
        Console.WriteLine(ss.dup("abc"));
men hvor angiver man en sti til web servicen?

"Det må der være masser af eksempler på." ja det er muligt, og jeg håber da på at se nogle flere som kan løse mit problem. Men jeg søger selvfølgelig også selv videre med de oplysninger du har givet mig indtil videre.
Avatar billede arne_v Ekspert
09. februar 2005 - 14:54 #5
URL'en og connection kode står i ServerService klassen som er en klasse
der genereres af WSDL utility (artiklen viser command line brug, Visual Studio
kan gøre sådan noget automatisk).
Avatar billede casper_skovgaard Nybegynder
09. februar 2005 - 23:00 #6
Jeg har fundet et eksempel som ser ud til at løse mit problem.

string uriString = "http://www.contoso.com";

WebClient myWebClient = new WebClient();

XmlDocument doc = new XmlDocument();
doc.LoadXml("<test>test</test>");
string postData = doc.OuterXml;

            myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");

// Apply ASCII Encoding to obtain the string as a byte array.
byte[] byteArray = Encoding.ASCII.GetBytes(postData);

Response.Write("Uploading to " + uriString);                       
           
// Upload the input string using the HTTP 1.0 POST method.
byte[] responseArray = myWebClient.UploadData(uriString,"POST",byteArray);
           
// Decode and display the response.
Response.Write("\nResponse received was " + Encoding.ASCII.GetString(responseArray));


Arne du løste ikke helt mit problem, men hjalp mig dog på vej, som tak får du halvdelen af pointene. Smid et svar :)
Avatar billede arne_v Ekspert
09. februar 2005 - 23:02 #7
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester