Solved

ASAP , problem with xmlhttp

Posted on 2001-08-10
16
258 Views
Last Modified: 2012-08-13
I have a big problem with xmlhttp.
When I send an xml as string using parameters and I want to get an xml back.  All the spaces are removed from the xml.  How come?  This is the code I use.

Set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
objHttp.Open "POST", "this is the correct url, False
objhttp.setRequestHeader "Content-Type","application/x-ww-form-urlencoded"
objHttp.Send <this is the xml>
response.write objHttp.responseText
Set objHttp = Nothing
0
Comment
Question by:inges
  • 6
  • 4
  • 2
  • +3
16 Comments
 
LVL 33

Expert Comment

by:hongjun
ID: 6371532
Can you post the actual code instead of all those <..>. Also post what you see when you do the response.write

hongjun
0
 
LVL 33

Expert Comment

by:hongjun
ID: 6371538
How about doing this?
Response.Write xmlhttp.responseXML.xml

hongjun
0
 

Author Comment

by:inges
ID: 6371552
I've tried the xmlhttp.responsexml.xml.
I still get an xml-string back with the spaces removed.
I would post the complete xml, but is it rather big but you understand the problem so ... .
0
Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

 

Author Comment

by:inges
ID: 6371553
I've tried the xmlhttp.responsexml.xml.
I still get an xml-string back with the spaces removed.
I would post the complete xml, but is it rather big but you understand the problem so ... .
0
 
LVL 33

Expert Comment

by:hongjun
ID: 6371609
Are those spaces replaced by any characters?

hongjun
0
 

Author Comment

by:inges
ID: 6371710
No not replaced, just gone
0
 
LVL 26

Accepted Solution

by:
EDDYKT earned 300 total points
ID: 6372211
If you remember correctly, you have to encode your xml string, ie. using Server.HTMLEncode
0
 
LVL 2

Expert Comment

by:ZhongYu
ID: 6372505
I suppose you post the xml to an asp. In this case you must add:    

Response.contentType = "text/xml"

before sending anything back to the browser.
0
 

Author Comment

by:inges
ID: 6372530
So how do you decode you're xml-string if you have used server.htmlencode
-------------------------------------------------------
I've tried it with the reponse.contenttype
0
 
LVL 33

Expert Comment

by:hongjun
ID: 6372543
Try this
response.write Server.HTMLEncode(objHttp.responseText)

hongjun
0
 
LVL 2

Expert Comment

by:ZhongYu
ID: 6372621
I am not sure it is supported by the browser side since it is wise to use the old version of XML: Microsoft.XMLHTTP you may not have to.

On the server side:
xmldoc.preserveWhiteSpace = true

use Msxml2.DOMDocument if you cannot use it.
0
 

Author Comment

by:inges
ID: 6372642
It happens in the send.
I send an xml string to the server and when ik gets there the spaces are gone.
0
 

Expert Comment

by:macshiva
ID: 6373827
Inges,

  Try this way!,

Use
Dim obx As New MSXML2.DOMDocument
Dim objhttp As MSXML2.ServerXMLHTTP

Set objhttp = New MSXML2.ServerXMLHTTP

objhttp.setRequestHeader "Content-Type", "text/xml"

then use soap packet to send the xml content:

    strMethodPkg = "<SOAP:Envelope xmlns:SOAP=""urn:schemas-xmlsoap-org:soap.v1"">"
    strMethodPkg = strMethodPkg & "<SOAP:Header></SOAP:Header>"
    strMethodPkg = strMethodPkg & "<SOAP:Body><m:XMLPass xmlns:m=""urn:soapserver/soap:XMLModule"">"
    strMethodPkg = strMethodPkg & "<XMLString>" & <<this is xml>> & "</XMLString>"
    strMethodPkg = strMethodPkg & "</m:PassXML></SOAP:Body></SOAP:Envelope>"

objhttp.send strMethodPkg

''send pack to receiver end
''after this

strresult = objhttp.responseText
 
obx.loadXML strresult


Receiving End:

Set objXMLDOM = Server.CreateObject("Microsoft.XMLDOM")
objXMLDOM.Load Request

''You validate according to your need
varXMLBack = objXMLDOM.SelectSingleNode("SOAP:Envelope/SOAP:Body/m:XMLPass/XMLString").Text

strResultXML = "<SOAP:Envelope xmlns:SOAP=""urn:schemas-xmlsoap-org:soap.v1""><SOAP:Header></SOAP:Header>"
strResultXML = strResultXML & "<SOAP:Body><m:XMLStrResponse xmlns:m=""urn:soapserver/soap:XMLModule"">"
strResultXML = strResultXML & "<XMLResult>" & varXMLBack & "</XMLResult></m:XMLStrResponse>"
strResultXML = strResultXML & "</SOAP:Body></SOAP:Envelope>"

Response.Write strResultXML

Best Regards,
Shiva

***********************************************************
0
 

Expert Comment

by:midavis
ID: 6374074
I am actually using posting xml to a server and getting xml out as well.  I have not found a way to get the spaces back.  I thought that through VB's XML DOM component, you can set the preserveWhiteSpaces to true and it should work.  I have tried to set this to true and false and it has not worked.  If you find an answer, let me know.  I will do the same for you.
0
 

Expert Comment

by:macshiva
ID: 6381583
the first sending part is from VB and the receiving end
is in asp..
0
 

Author Comment

by:inges
ID: 6490079
Thanks, It was not server.HTMLEncode but server.URLEncode.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question