Avatar billede fluii Nybegynder
04. december 2006 - 12:51 Der er 11 kommentarer og
1 løsning

Sende XML-Request til server

Med nederstående får jeg følgende fejl tilbage fra serveren:
"No XML field provided in the http post."

Hvad gør jeg galt ?

<%

Dim xml
Set xml = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")

xmldata = "<!DOCTYPE DMConnect SYSTEM ""dmconnect.dtd"">" &_
"<DMConnect>" &_
"    <GetProfileFields>" &_
"        <ClientName>navn</ClientName>" &_
"    </GetProfileFields>" &_
"</DMConnect>"

xmldata = Server.URLEncode(xmldata)

xml.Open "POST", "http://xxx.dk/xxx.exe", False

xmlsend = "Servername=sss&Username=uuu&Password=ppp&Version=4.0&xml="&xmldata

xml.Send xmlsend

Response.Write xml.responseText

%>
Avatar billede fennec Nybegynder
04. december 2006 - 14:01 #1
Du mangler en xform header:

xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.Send xmlsend
Avatar billede olebole Juniormester
04. december 2006 - 14:11 #2
<ole>

Nej, men der skal til gengæld sættes en Content-type, der hedder 'text/xml', når der returneres XML-data  ;o)

    Response.ContentType = "text/xml"

/mvh
</bole>
Avatar billede fluii Nybegynder
04. december 2006 - 14:14 #3
Stadig samme fejl...
Avatar billede fennec Nybegynder
04. december 2006 - 14:33 #4
oleBole >>
Det er nok en af de eneste gange jeg må modsige dig. For at sende Post data skal der en xform header på. Hvis den ikke er der kan serveren ikke læse data. Du kan selv prøve det:

test.asp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<%
Dim xml, xmlsend, xmldata
Set xml = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
xml.Open "POST", "http://domæne.dk/test1.asp", False
xmlsend = "test=EnTestTekst"
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.Send xmlsend
Response.Write xml.responseText
%>
</body>
</html>

test1.asp
<%= "**"& Request.Form() &"**" %>

Prøv ar fjerne header linjen, også kommer der ikke nogen post data frem.
Avatar billede fluii Nybegynder
04. december 2006 - 15:22 #5
Har i andre løsningsforslag til mit problem ?
Avatar billede fennec Nybegynder
04. december 2006 - 16:01 #6
Virker det hvis deu sender fra en almindelig form??
Avatar billede olebole Juniormester
04. december 2006 - 16:06 #7
fennec >> Når jeg nu læser spm'et igen, kan jeg godt se fejlen:
    "No XML field provided in the http post."
- stammer derfra  ;o)

På den anden side vil der opstå problemer i returen, hvis ikke også den korrekte MIME sættes der  =)
Avatar billede fluii Nybegynder
04. december 2006 - 16:12 #8
Der er ingen problemer når der sendes fra en alm. form (clientside-html)

Forslag ?
Avatar billede fennec Nybegynder
05. december 2006 - 08:18 #9
Hvordan ser den form ud som virker??
Avatar billede fluii Nybegynder
05. december 2006 - 08:59 #10
<HTML>
<HEAD>
<TITLE>DMConnect Trigger</TITLE>
</HEAD>
<BODY bgColor=#7b94b3>
<FORM action="http://xxx.dk/xxx.exe" method=post name="XML Trigger">
<H3>DARTmailConnect Test Form</H3>
<HR>
<P>
Server Name: <INPUT name=Servername size=50 value="xxx"><BR>
User Name: <INPUT name=Username size=50 value="xxx"><BR>
Password: <INPUT name=Password size=40 value="xxx"><BR>
Acknowledgement To: <INPUT name=AcknowledgementTo size=40 value=""><BR>
Version: <INPUT name=Version size=40 value="4.0">
<P>
XML Stream:<BR>
<TEXTAREA cols=70 name=XML rows=18><!DOCTYPE DMConnect SYSTEM "dmconnect.dtd">
<DMConnect>
<GetProfileFields>
<ClientName>xxx</ClientName>
<SiteName>xxx</SiteName>
</GetProfileFields>
</DMConnect>
</TEXTAREA>
<P>
<INPUT name=SubButton type=submit value="Send to DARTmailConnect">
</FORM>
</BODY>
</HTML>
Avatar billede fennec Nybegynder
05. december 2006 - 09:44 #11
Nu kalder du kodt nok en exe fil, så jeg kunne forstille mig at det evt kunne være et problem med store/små bogstaver (xml/XML). Prøv at rette det til dette:

xmlsend = "Servername=sss&Username=uuu&Password=ppp&Version=4.0&XML="&xmldata

Du har desuden også et AcknowledgementTo felt som ikke er med på listen. Men den kan måske undværes??
Avatar billede fluii Nybegynder
05. december 2006 - 09:56 #12
Yes - så virker det!

Det var da utroligt at det bare var sådan en lille ting...
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