classic asp xml receiver page doesn't receive the xml (or so it seems) - asp-classic

I am working on Classic ASP and was going through a possible solution of posting and reading an xml.
I read Tim's reply (which is pasted below) but this doesn't work for me. It seems xmlDoc.load(Request) doesn't load anything. What could be wrong here? I would very much appreciate a prompt response.
This is the posting page:
url = "www.receivingwebsite.com\asp\receivingwebpage.asp"
information = "<Send><UserName>Colt</UserName><PassWord>Taylor</PassWord><Data>100</Data></Send>"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml"
xmlhttp.send information
This is the receiving page:
Dim xmlDoc
Dim userName
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load(Request)
userName = xmlDoc.documentElement.selectSingleNode("UserName").firstChild.nodeValue

Try this :
Dim objXmlRequest
Set objXmlRequest = Server.CreateObject("MSXML2.DOMDOCUMENT.3.0")
objXmlRequest.async = False
objXmlRequest.setProperty "ServerHTTPRequest", True
objXmlRequest.validateOnParse = True
objXmlRequest.preserveWhiteSpace = False
IF objXmlRequest.Load (Request) THEN
''' GET THE REQUEST FROM CLIENT
strQuery = "//" & "ActionName"
Set oNode = objXmlRequest.selectSingleNode(strQuery)
strActionName = oNode.Text
END IF
' The key is in the property set ... check ".setProperty "ServerHTTPRequest", True"
Bye, Martin.

Related

How to integrate razor payment to the asp classic?

I have to integrate the razor payment to the asp classic and for this i have write the code for that is
razamt=razamt*100
dim options
set options = server.createObject("Scripting.Dictionary")
options.add "amount", razamt
options.add "receipt", "order_rcptid_11"
options.add "currency", "INR"
options.add "payment_capture", "0"
**Order order = client.Order.Create(options)**
getting issue in star marked line client is not available and i have no idea how to solve this
Please help me to fix this issue.
You should be able to do it using MSXML.ServerXMLHTTP, example
DataToSend = "amount=1&receipt=order_rcptid_11&currency=INR&payment_capture=0"
set xmlhttp = server.Createobject("MSXML6.ServerXMLHTTP")
xmlhttp.Open "POST","https://api.razorpay.com/v1/orders",false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send DataToSend
Response.ContentType = "text/xml"
Response.Write xmlhttp.responsexml.xml
Set xmlhttp = nothing

read all elements from another page using classic ASP

Is there a way to read a another page's elements and grab the whole HTML code?
let's say for example i want to get all the HTML from this page : http://localhost/test3.html
Thank you!
Here's a function I use:
function http_post (strUrl, data)
' call another URL (e.g. ASP or PHP script) via HTTP and POST. "data" should be GET-style parameter string or empty '
dim xmlHttp
Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP.6.0")
With xmlHttp
.Open "POST", strUrl, False
.setRequestHeader "User-Agent", Request.ServerVariables("HTTP_USER_AGENT")
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "Content-Length", Len(data)
.Send data
if .Status < 400 then
http_post = .responseText
else
' do error logging here if you want '
http_post = false
end if
.abort()
End With
set xmlHttp = Nothing
end function

sendgrid in classic asp add email category

I'm sending mail using sendgrid web API successfully but unable add categories into x-smtpapi.
Here is my code :
function getHTML (strUrl,postData)
Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP")
xmlHttp.Open "POST", strUrl, False
xmlHttp.setRequestHeader "User-Agent", "asp httprequest"
xmlHttp.setRequestHeader "content-type", "application/x-www-form-urlencoded"
'xmlHttp.AddHeader "category", "web"
xmlHttp.Send postData
getHTML = xmlHttp.responseText
xmlHttp.abort()
set xmlHttp = Nothing
end function
Response.Write("test->" & getHTML("https://sendgrid.com/api/mail.send.json","api_user=myusername&api_key=mykey&to=soneone#somemail.com&subject=test-1 msg&html=this is test message&from=info#zyxxxz.com&category={testweb}"))
Response.End()
I've checked some doc here
But I could not find any way to add categories.
EDIT
Response.Write("test->" & getHTML("https://sendgrid.com/api/mail.send.json","api_user=user&api_key=key&to=somemail#somemail.com&subject=test-1 msg&html=this is test message&from=info#xyzzz.com&x-smtpapi={"category":"testCategory"}"))
I need to post it JSON. If I do not put double quote x-smtpapi={"category":"testCategory"}" JSON parser can't parse it!
A double double quote escapes in ASP:
Ex.
#Invalid
str = " She said "Hello World" to the whole group"
#valid
str = " She said ""Hello World"" to the whole group"
So this should work fine:
Response.Write("test->" & getHTML("https://sendgrid.com/api/mail.send.json","api_user=user&api_key=key&to=somemail#somemail.com&subject=test-1 msg&html=this is test message&from=info#xyzzz.com&x-smtpapi={""category"":""testCategory""}"))

vbs xmlhttp responseText Truncated?

Hello all i have a simple vbs script that is grabbing a url(with values using GET) and I need to parse thru the text. However the responsetext i am getting is not the full response. i am getting a string that is 1000 in length however i know the response should be more like 5000.
Function getServer(server_hostname)
Set objHTTP = CreateObject("msxml2.xmlhttp.3.0")
objHTTP.open "GET", "http://someurl/ServerInfo.asp", False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send "B1=GO!!&Server=" + server_hostname
getServer = objHTTP.responseText
End Function
serverStr = getServer(server_hostname)
msgbox(Len(serverStr))
Is there a limitation on how much can be returned? Thank you for your help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
So i change my function to:
Function getServer(server_hostname)
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.open "GET", "http://someurl/ServerInfo.asp?B1=GO!!&Server=" + server_hostname , False
'objHTTP.setRequestHeader "Content-Type", "text/html"
'objHTTP.send "B1=GO!!&Server=" + server_hostname
objHTTP.send
getServer = objHTTP.responseText
End Function
And now it works...no idea why.
The maximum MsgBox length is 1024 characters.
Ref: http://www.w3schools.com/vbscript/func_msgbox.asp

msxml domdocument stops working when I move to staging server

I have some code that looks like this:
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHttp.Open "Get", myRSSfile, false
xmlHttp.Send()
myXML = xmlHttp.ResponseText
Set xmlResponse = Server.CreateObject("MSXML2.DomDocument")
xmlResponse.async = false
xmlResponse.LoadXml(myXML)
Set xmlHttp = Nothing
Set objLst = xmlResponse.getElementsByTagName("item")
Set xmlResponse = Nothing
NoOfHeadlines = objLst.length - 1
Response.Write NoOfHeadlines
This worked find on my development server. When I moved it over to a staging server (which I have no control over, and no nothing about), NoOfHeadlines returns 0. It seems obvious to me that DomDocument is not working the way its supposed to.
Is this a version issue? How do I find out what version of DomDocument is on the staging server?
Is there another possibility?
The problem was
xmlHttp.Open "Get", myRSSfile, false
should be
xmlHttp.Open "GET", myRSSfile, false

Resources