[.NET] Probleem met posten (XML) bericht naar webservice

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

Acties:
  • 0 Henk 'm!

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
Ik ben al een tijdje bezig met het volgende probleem: voor een klant moet ik een applicatie schrijven die periodiek een produktcatalogus post naar een webservice. Het bedrijf waar we de applicatie voor schrijven maakt van de webservice gebruik als dienst en communicatie met het bedrijf dat de webservice dienst verleent verloopt moeizaam (een helpdesk is de directe lijn voor communicatie en men mag mij niet doorverbinden met ontwikkelaars e.d.).

We hebben te maken met een beveiligde webservice, ik post mijn bericht naar een URL beginnende met https://www.webservice.nl/ssid=DSFFDFDSA312 (voorbeeld)

Wellicht belangrijk om te weten is dat de URL eindigt op: /ssid=7A1E23443FSDFSDA04466EDDC9D33E6A

Ik heb begrepen dat het hele ssid verhaal een soort identificatiecode is. Het bedrijf dat de webservice beheerd en onderhoud doet min of meer hetzelfde voor andere klanten.

Ik wil een catalogus posten naar de URL en daarna de response uitlezen. De response vertelt of de upload actie geslaagd is, of er iets mis is gegaan, etc...

Nu heb ik op internet verschillende stukken code gevonden waarmee ik de service zou moeten kunnen benaderen.
* HttpWebRequest object gebruiken (met en zonder certificaat) om bericht te posten, HttpWebResponse object om het resultaat uit te lezen. Met de URL van de webservice krijg ik overigens een error van het type 500 (generic server error oid).
* WebClient object gebruiken (hopende dat die automatisch met certificaat zou kunnen werken, ik heb het certificaat van de webservice in kwestie aangegeven dat die vertrouwd was.
* WebRequest / WebResponse objecten gebruiken, weer zonder succes, weer error van type 500.

Voordat ik code post wil ik graag weten of iemand al eerder met het probleem te maken heeft gehad en zo ja, wat de oplossing in dat geval was.

Edit: kleine doch belangrijke aanvulling a.d.h. van post hieronder ...

De URL is ook te benaderen via een browser, in dat geval krijg ik wel een 'response' terug in de vorm van een XML bericht. Het resultaat wat ik in de browser terugkrijg is hieronder weergegeven:

code:
1
2
3
4
5
6
<ErrorMessage code="ValidationError">
    <ErrorText>Invalid Document</ErrorText>
    <DetailedDescription>
Schema validation failed. The document is either not valid XML or does not conform to Tradeplace schema definition.  Hubspan TrackID:940630
    </DetailedDescription>
</ErrorMessage>


In de browser komt dus niet de '500 internal server' error terug

[ Voor 18% gewijzigd door MacWolf op 16-02-2007 15:20 ]

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Nu online

lier

MikroTik nerd

Kan aan mijn beperkte kennis van webservices liggen, maar waarom voer je een request response uit ?

Je kan toch gewoon een webreference leggen naar de webservice en deze vervolgens instantieren en de methodes aanroepen die je nodig hebt ?

Daarom...ben erg benieuwd naar je code, misschien begrijp ik dan jouw bedoelingen.

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
lier schreef op vrijdag 16 februari 2007 @ 14:20:
Kan aan mijn beperkte kennis van webservices liggen, maar waarom voer je een request response uit ?

Je kan toch gewoon een webreference leggen naar de webservice en deze vervolgens instantieren en de methodes aanroepen die je nodig hebt ?

Daarom...ben erg benieuwd naar je code, misschien begrijp ik dan jouw bedoelingen.
Wellicht is webservice de verkeerde omschrijving. Feitelijk moet een catalogus worden verstuurd d.m.v. een POST actie (zoals met HTML formulieren gebeurt). Vandaar dat ik met request en response objecten werk. Ik heb geen proxy class die ik kan gebruiken oid.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14-05 20:54

TeeDee

CQB 241

- Die ssid lijkt me een SHA variant.

Maar, wat is nu je probleem?

Trouwens, als je 500 Errors krijgt, dan lijkt me dat het e.e.a. bij de Webservice provider niet helemaal in de haak is.

[ Voor 47% gewijzigd door TeeDee op 16-02-2007 15:05 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
TeeDee schreef op vrijdag 16 februari 2007 @ 14:58:
- Die ssid lijkt me een SHA variant.

Maar, wat is nu je probleem?

Trouwens, als je 500 Errors krijgt, dan lijkt me dat het e.e.a. bij de Webservice provider niet helemaal in de haak is.
Ben nog iets vergeten te vermelden: de URL is ook te benadere via een browser, in dat geval krijg ik wel een 'response' terug in de vorm van een XML bericht. Het resultaat wat ik in de browser terugkrijg is hieronder weergegeven:

code:
1
2
3
4
5
6
<ErrorMessage code="ValidationError">
    <ErrorText>Invalid Document</ErrorText>
    <DetailedDescription>
Schema validation failed. The document is either not valid XML or does not conform to Tradeplace schema definition.  Hubspan TrackID:940630
    </DetailedDescription>
</ErrorMessage>

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14-05 20:54

TeeDee

CQB 241

Ah, dus je bent bezig met Product Identificatie?

Alright, maar wat wil je nu doen? Ze hebben nergens een WSDL beschikbaar?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Nu online

lier

MikroTik nerd

TeeDee schreef op vrijdag 16 februari 2007 @ 15:25:
Ah, dus je bent bezig met Product Identificatie?

Alright, maar wat wil je nu doen? Ze hebben nergens een WSDL beschikbaar?
Het is geen webservice, dus een WSDL is niet waarschijnlijk.

@MacWolf: Ik denk dat je beter de bron kan aanpakken of je klant hiervoor verantwoordelijk maakt (voor zover mogelijk). Maar...ook via de browser krijg je een error terug, dus...

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
lier schreef op vrijdag 16 februari 2007 @ 15:28:
[...]

Het is geen webservice, dus een WSDL is niet waarschijnlijk.

@MacWolf: Ik denk dat je beter de bron kan aanpakken of je klant hiervoor verantwoordelijk maakt (voor zover mogelijk). Maar...ook via de browser krijg je een error terug, dus...
Het liefst zou ik dus ook inderdaad contact hebben met een ontwikkelaar of beheerder bij het bedrijf dat de dienst beschikbaar stelt, maar zoals gezegd wil de helpdesk me niet met dergelijke medewerkers doorverbinden, dat is in strijd met hun policy. Ik denk dus inderdaad dat ik de klant verantwoordelijk moet stellen zoals je voorstelt, mogelijk kunnen zij meer druk zetten bij het bedrijf dat de dienst verleent.

Toch: mocht nog iemand een idee hebben of hetzelfde probleem hebben meegemaakt en een oplossing gevonden, dan hoor ik het graag.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Nu online

lier

MikroTik nerd

Hoe kom je aan de informatie met betrekking tot het aanroepen van de link ?
Oftewel, wie heeft jou die URL gegeven ?

Laat die partij weten dat deze URL een error geeft en dat je er dus niets mee kan.

Op zich moet het niet al te moeilijk zijn om informatie te sturen via een post (hierover is natuurlijk bijzonder veel informatie te vinden), maar je moet wel de juiste specificaties hebben.

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

Anoniem: 14829

Schema validation failed. The document is either not valid XML or does not conform to Tradeplace schema definition.
Gebruik je hun XSD om de XML die je stuurt te valideren (goede namespaces, etc.)? Zo ja, dan moet je 't misschien zoeken in het encoding type van je XML. .NET's XmlSerializer gebruikt default utf-16, terwijl veel webservices utf-8 eisen.
Pagina: 1