Toon posts:

[ASP] Webservice XML laten outputten

Pagina: 1
Acties:
  • 331 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Heey,

Ik kan het echt niet goed verwoorden en ik snap ook echt niet hoe en waar ik op moet zoeken of hoe ik het moet doen.. kprobeer het ff uit te leggen:

Kheb een webservice en als ik dan kijk in opzet, zie ik dit:

code:
1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://www.gulst.nl/">
  <string>string</string>
  <string>string</string>
</ArrayOfString>


Dat is wat hij output, maarrrrr, nu zie ik bijvoorbeeld hier (van Microsoft Live Website):

code:
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<Result xmlns="http://start.com/startservice/">
  <Code>int</Code>
  <Message>string</Message>
  <Data>
    <LoginStatus xmlns="">
      <IsAuthenticated>boolean</IsAuthenticated>
      <profileName>string</profileName>
      <LogoTag>string</LogoTag>
    </LoginStatus>
  </Data>
</Result>


Nu is mijn vraag, hoe krijgen zij netjes die <code>, <message>, <data> etc erin? Ik heb al geprobeerd iets te doen met XMLDocument, ook gezocht op info over webservices, maar om 1 of andere reden jat iedereen tutorials van elkaar, alles met strings en integers. Heldere info over XML ouputten in een webservice is nie goed te vinden..

Ik had trouwens dit als code bij die service:
code:
1
2
3
4
5
6
[WebMethod(EnableSession=true)]
    public string[] Login(String nickname, String password)
    {
       //code
       return returnString; //String array
  }


Ik wil echt van die namen gebruiken, echte XML, zodat ik het ook makkelijk in Javascript kan gebruiken..

Greetz,

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Met een ASP.NET WebService project in VS.NET kun je eenvoudig remote functies (functies op een andere machine/server aanroepen). Een webmethod is een mechanisme om remote functies aan te roepen op dezelfde manier als dat je functies zou aanroepen in een applicatie. Achterliggend worden hiervoor SOAP messages (gebaseerd op XML) gebruikt. De SOAP messages is hetgene dat jij nu ziet.

Wat jij waarschijnlijk wilt is een aspx pagina maken die XML uitspuugt. Dat is iets heel anders dan een webmethod aanroepen. In dat geval kun je zelf via System.Xml een eigen verzonnen XML document genereren en dat vervolgens naar de client uitspugen. Dat is verder niet zo moelijk en daar is via MSDN veel over te vinden.

It’s nice to be important but it’s more important to be nice


Verwijderd

Topicstarter
Maar hoe doen ze dat hier dan ?

http://www.live.com/startservice/startservice.asmx?op=Logout

Zoiets wil ik maken? Want ik wil namelijk wel die functie aanroepen, bijvoorbeeld die inlogfunctie, om daarna netjes zoiets als je daar ziet terug te krijgen?

IPV dat ik in javascript result[0] moet gebruike (ik gebruik het met Atlas), wil ik dat netjes in XML kunnen doen...

[ Voor 4% gewijzigd door Verwijderd op 07-02-2006 21:47 ]


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ik moet bekennen dat ik (nog) geen ervaring heb met het maken van WebServices in ASP.NET. Ik vermoed dat de XML structuur zoals op die link gemaakt kan worden door het serializen van een class. Deze class kent dus properties zoals Code, Message etc. Je zal dus een class moeten maken met de door jouw gewenste structuur. De WebService zet dit dan om naar de juiste XML structuur.

Misschien dat je op onderstaande site wat ideeën kunt opdoen:
http://www.15seconds.com/Issue/010430.htm

It’s nice to be important but it’s more important to be nice


Verwijderd

Topicstarter
Heeey :)

Jaa,, zoiets wilde ik ook proberen.. had toen een class gebruikt, maar met een struct werkt het echt super !

Echt hartstikke bedankt!! _/-\o_

Dit is mijn testcode geweest:

code:
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
<%@ WebService Language="C#" Class="WebService" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;


[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService  : System.Web.Services.WebService {

    [WebMethod]
    public Test HelloWorld() {
        Test teststruct;

        teststruct.HelloWorld = "Gegroet!";
        teststruct.Messages = 0;
        
        return teststruct;
    }
    
}

public struct Test
{
    public string HelloWorld;
    public int Messages;
}


Bij een invoke krijg ik dit:

code:
1
2
3
4
<Test>
<HelloWorld>Gegroet!</HelloWorld>
<Messages>0</Messages>
</Test>


Helemaal perfect :D:D _/-\o_ :+

  • Vedett.
  • Registratie: November 2005
  • Laatst online: 22:27
Met een class gaat het zeer zeker ook. Je moet ze gewoon marken als serilaizable

C#:
1
2
3
4
[Serializable]
public class MyClass{

}
Pagina: 1