Ik heb het volgende probleem en ben totaal niet thuis in ASP.
Ik moet een XML request sturen naar server PROV01. Deze server staat alleen XML requests toe die afkomstig zijn vanaf de lokale machine, wat in dit geval niet zo is. Daartoe heb ik een ASP script geschreven (dat was en is de enige scripttaal beschikbaar op die server) dat de requests forward zodat ik de applicatie die de XML files verstuurt lokaal kan ontwikkelen.
Dit script spreek ik aan door een POST request op http://PROV01/_PassThru/PassThru.aspx?FWD=iets.asmx. Dat forwarden gaat opzich wel goed maar ik heb een ander raar probleem.
Ik stuur bijvoorbeeld dit XML request:
Als ik het ASP script daarna laat tonen wat 't gaat sturen laat-ie dit zien:
Opzich kloptie helemaal, op het laatste stukje na. Na de eindtag </soap:Envelope> mag niets meer komen, daardoor lukt de request niet. Opmerkelijk is ook dat wat na de laatste tag komt, eigenlijk in de propertiesXmlString-tag hoort. Op deze manier:
Dit is de source code van mijn script. Nogmaals; ik ben totaal niet thuis in de ASP wereld en heb de enige functie die erin zit dan ook schaamteloos geript. Enkel het stukje tussen de ASP tags is zelf gemaakt.
Heeft iemand enig idee waarom er meer informatie achteraan komt, terwijl ik daar geen aanleiding toe geef...? Thx!
Ik moet een XML request sturen naar server PROV01. Deze server staat alleen XML requests toe die afkomstig zijn vanaf de lokale machine, wat in dit geval niet zo is. Daartoe heb ik een ASP script geschreven (dat was en is de enige scripttaal beschikbaar op die server) dat de requests forward zodat ik de applicatie die de XML files verstuurt lokaal kan ontwikkelen.
Dit script spreek ik aan door een POST request op http://PROV01/_PassThru/PassThru.aspx?FWD=iets.asmx. Dat forwarden gaat opzich wel goed maar ik heb een ander raar probleem.
Ik stuur bijvoorbeeld dit XML request:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ModifyUser xmlns="http://provisioning.microsoft.com/webservices"> <ldapPath>LDAP://geldig,ldap,pad</ldapPath> <displayName>Mark</displayName> <givenName>Mark</givenName> <middleName /> <sn>OV</sn> <initials>M</initials> <description>Testaccount</description> <propertiesXmlString><properties><property name="street"><value>somestreet</value></property><property name="l"><value>somelocation</value></property></properties></propertiesXmlString> <preferredDomainController>ad01.ms-services.domain.tld</preferredDomainController> </ModifyUser> </soap:Body> </soap:Envelope> |
Als ik het ASP script daarna laat tonen wat 't gaat sturen laat-ie dit zien:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ModifyUser xmlns="http://provisioning.microsoft.com/webservices"> <ldapPath>LDAP://geldig,ldap,pad</ldapPath> <displayName>Mark</displayName> <givenName>Mark</givenName> <middleName /> <sn>OV</sn> <initials>M</initials> <description>Testaccount</description> <propertiesXmlString><properties>><value>somestreet</value></property>><value>somelocation</value></property></properties></propertiesXmlString> <preferredDomainController>ad01.ms-services.domain.tld</preferredDomainController> </ModifyUser> </soap:Body> </soap:Envelope><property name="street"<property name="l" |
Opzich kloptie helemaal, op het laatste stukje na. Na de eindtag </soap:Envelope> mag niets meer komen, daardoor lukt de request niet. Opmerkelijk is ook dat wat na de laatste tag komt, eigenlijk in de propertiesXmlString-tag hoort. Op deze manier:
code:
1
2
3
4
5
6
7
8
| In de response staan - ;><value>somestreet</value></property> - <property name="street" Combineer ze en je hebt: - lt;property name="street"><value>somestreet</value></property> hetgeen in de request staat |
Dit is de source code van mijn script. Nogmaals; ik ben totaal niet thuis in de ASP wereld en heb de enige functie die erin zit dan ook schaamteloos geript. Enkel het stukje tussen de ASP tags is zelf gemaakt.
ASP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| <%@ Page aspcompat=true validateRequest="false" %> <script runat="server" language="vb"> Private Function URLDecode(byVal encodedstring) Dim strIn, strOut, intPos, strLeft Dim strRight, intLoop strIn = encodedstring : strOut = _ "" : intPos = Instr(strIn, "+") Do While intPos strLeft = "" : strRight = "" If intPos > 1 then _ strLeft = Left(strIn, intPos - 1) If intPos < len(strIn) then _ strRight = Mid(strIn, intPos + 1) strIn = strLeft & " " & strRight intPos = InStr(strIn, "+") intLoop = intLoop + 1 Loop intPos = InStr(strIn, "%") Do while intPos If intPos > 1 then _ strOut = strOut & _ Left(strIn, intPos - 1) strOut = strOut & _ Chr(CInt("&H" & _ mid(strIn, intPos + 1, 2))) If intPos > (len(strIn) - 3) then strIn = "" Else strIn = Mid(strIn, intPos + 3) End If intPos = InStr(strIn, "%") Loop URLDecode = strOut & strIn End Function </script> <% ' Variabelen initialiseren Dim Xml = Server.CreateObject("Microsoft.XMLHTTP") Dim AuthStr = Request.ServerVariables("HTTP_Authorization").toString() ' Wat we moeten sturen opschonen Dim sendOut = URLDecode(Request.Form.toString()) ' Verbinding opnenen Xml.Open("POST", "http://localhost/mpsws/" & Request.QueryString("FWD"), False) ' Headers juist zetten Xml.setRequestHeader("Content-Type", "text/xml; charset=utf-8") Xml.setRequestHeader("Authorization", AuthStr) Xml.setRequestHeader("SOAPAction", """http://provisioning.microsoft.com/webservices/" & Request.QueryString("SOAPAction") & """") ' Request versturen Xml.Send(sendOut.toString()) ' Antwoord tonen Response.Write(Xml.responseText) %> |
Heeft iemand enig idee waarom er meer informatie achteraan komt, terwijl ik daar geen aanleiding toe geef...? Thx!
[ Voor 3% gewijzigd door Mafkees op 12-02-2010 13:00 ]