|
|
 |
FN-FORUM: Help converting MsXml4 call to asp.net 1.1 VB
date posted 10th May 2007 14:36
HI,
I've got the task of incorporating a South African payment gateway into an
ASP.NET V1.1 VB site. All is well apart from the examples they give are for
classic asp using an MsXml4 post. I was wondering if someone could take a
quick look at the way I'm doing it in .NET compared to how they specify it
in classic asp? The actual XML message being sent is ok as I display it when
it's sent so I can check it.
Their example:-
Dim xmlServerHttp
Dim xmlServerStatus
Dim XmlServerResponse
Set xmlServerHttp = Server.CreateObject("MsXml2.ServerXmlHTTP.4.0")
xmlServerHttp.open
"POST","https://www.vcs.co.za/vvonline/ccxmlauth.asp",False
xmlServerHttp.setRequestHeader
"Content-Type","application/x-www-form-urlencoded" xmlServerHttp.send
"xmlmessage=" & XmlDocument
xmlServerStatus = xmlServerHttp.status
if xmlServerStatus = "200" then
xmlServerResponse = xmlServerHttp.responseText
Response.Write (xmlServerResponse)
Else
Response.Appendtolog ".xmlServer status is " & xmlServerStatus
end if
set xmlServerHttp = nothing
My version (it returns a properly formatted XML response from their system
saying "message empty"):-
''''''''''''''
'Send Request
''''''''''''''
Dim HttpRequest As HttpWebRequest = CType(WebRequest.Create(URL),
HttpWebRequest)
HttpRequest.Method = "POST"
HttpRequest.KeepAlive = False
HttpRequest.ProtocolVersion = HttpVersion.Version10
HttpRequest.Method = "POST"
Dim PostBuffer As Byte() = Encoding.Default.GetBytes(XMLRequest)
HttpRequest.ContentLength = PostBuffer.Length
Dim PostDataStream As Stream = HttpRequest.GetRequestStream
PostDataStream.Write(PostBuffer, 0, PostBuffer.Length)
PostDataStream.Close()
''''''''''''''''''
'Receive Response
''''''''''''''''''
Dim WebResponse As HttpWebResponse
Dim ResponseStream As StreamReader
Dim VCSResponse As String
Try
WebResponse = CType(HttpRequest.GetResponse(),
HttpWebResponse)
ResponseStream = New
StreamReader(WebResponse.GetResponseStream)
VCSResponse = ResponseStream.ReadToEnd
WebResponse.Close
Catch ex As Exception
WebResponse.Close
End Try
I'm suspecting the encoding but don't get the option to change it to
URLEncoding.
Any help would be appreciated.
Craig
|
 |
|