Avatar billede sunero Nybegynder
10. marts 2005 - 09:13 Der er 7 kommentarer og
1 løsning

Webservice problem.

Hejsa,

Jeg er ret ny i .Net og C#, og jeg sidder derfor med et nok meget simpelt webservice problem, som ser således ud

<%@ WebService Language="C#" Class="MathService" %>

using System;
using System.Web.Services;

[WebService(Namespace="http://localhost/webservices/")]
public class MathService : WebService {

    [WebMethod]
    public String Hello(string strName) {
          return "Hello," + strName +  " have a  great day";
    }


}

Når jeg vil kalde min webservice bruger jeg følgende :

Content-Type : text/xml; charset=utf-8
Content-Length : 112
soapaction : http://localhost.dk/webservices/Hello

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://wwww.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Hello xmlns="http://localhost.dk/webservices/">
<Name>Peter</Name>
</Hello>
</soap:Body>
</soap:Envelope>

Mit problem er at jeg får følgende XML fil tilbage :

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><HelloResponse xmlns="http://legis.dk/webservices/"><HelloResult>Hello, have a  great day</HelloResult></HelloResponse></soap:Body></soap:Envelope>

Som man kan se, mangler navnet (strName) i outputtet. Hvad gør jeg forkert ?
Avatar billede sunero Nybegynder
10. marts 2005 - 09:14 #1
Jeg ved godt at jeg har skrevet localgost og localhost.dk, men det er rettet og giver ingen forskel.
Avatar billede wisen Nybegynder
10. marts 2005 - 09:32 #2
Dit argument hedder "strName" men det du sender i SOAP-pakken hedder "Name"

Prøv at kalde med:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://wwww.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Hello xmlns="http://localhost.dk/webservices/">
<strName>Peter</strName>
</Hello>
</soap:Body>
</soap:Envelope>
Avatar billede sunero Nybegynder
10. marts 2005 - 10:18 #3
Super det virkede.

Et lille tillægsspørgsmål. Hvad bruges Content-Length egentlig til og hvad skal man putte i den?
Avatar billede wisen Nybegynder
10. marts 2005 - 11:21 #4
Content-Length bruges til at angive hvor meget data der kommer efter http-headeren - altså hvor meget din SOAP-pakke fylder i bytes.
Avatar billede wisen Nybegynder
10. marts 2005 - 11:21 #5
Smider lige et svar :)
Avatar billede sunero Nybegynder
10. marts 2005 - 11:25 #6
Er det mandatoty ?
Avatar billede wisen Nybegynder
10. marts 2005 - 12:49 #7
Ja, det er en del af HTTP-protokollen
Avatar billede arne_v Ekspert
12. marts 2005 - 16:57 #8
Den er en del af HTTP protokollen.

Den er mandatory eller optional eller forbidden afhængig af requesten.
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
Kurser inden for grundlæggende programmering

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