Simulate form post from Server Side

Simulate form post from Server Side

am 26.09.2007 12:16:47 von BarryX

Hi,

How do I simulate this from the server side:

action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">

I have generally been posting data using:

Set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.Open "POST","http://SOMEURL/Search.asp?" & strParmList, False
xml.Send

The above is fine for passing URL parameters, but I need to simulate it
coming from a form which has a name. How do I pass the form name which
is used at the posted URL?

Help!

Re: Simulate form post from Server Side

am 26.09.2007 14:39:09 von Tim Slattery

"BarryX" wrote:

>Hi,
>
>How do I simulate this from the server side:
>
> >action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">
>
>I have generally been posting data using:
>
> Set xml = Server.CreateObject("Microsoft.XMLHTTP")
> xml.Open "POST","http://SOMEURL/Search.asp?" & strParmList, False
> xml.Send
>
>The above is fine for passing URL parameters, but I need to simulate it
>coming from a form which has a name. How do I pass the form name which
>is used at the posted URL?

AFAIK, the "name" attribute of a form tag really has no meaning and is
never transmitted to the server. On a normal HTML page, if you want to
send an extra bit of data you use a element.

--
Tim Slattery
MS MVP(DTS)
Slattery_T@bls.gov
http://members.cox.net/slatteryt

Re: Simulate form post from Server Side

am 26.09.2007 14:41:41 von reb01501

BarryX wrote:
> Hi,
>
> How do I simulate this from the server side:
>
> > action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">
>
> I have generally been posting data using:
>
> Set xml = Server.CreateObject("Microsoft.XMLHTTP")
> xml.Open "POST","http://SOMEURL/Search.asp?" & strParmList, False
> xml.Send
>
> The above is fine for passing URL parameters, but I need to simulate
> it coming from a form which has a name. How do I pass the form name
> which is used at the posted URL?
>

1. In server-side code, use Microsoft.ServerXMLHTTP
2. I don;'t think this is possible due to security restrictions. What
are you trying to accomplish?


--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.

Re: Simulate form post from Server Side

am 26.09.2007 17:22:25 von exjxw.hannivoort

Bob Barrows [MVP] wrote on 26 sep 2007 in
microsoft.public.inetserver.asp.general:

> BarryX wrote:
>> Hi,
>>
>> How do I simulate this from the server side:
>>
>> >> action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">
>>


> 1. In server-side code, use Microsoft.ServerXMLHTTP
> 2. I don;'t think this is possible due to security restrictions. What
> are you trying to accomplish?
>
>

<%
url = "http://www.espn.com/main.html"
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-
urlencoded"
xmlhttp.send "x=1&y=2"
Response.write xmlhttp.responseText
set xmlhttp = nothing
%>

remote-web-page.html>


--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

Re: Simulate form post from Server Side

am 26.09.2007 17:39:45 von reb01501

Evertjan. wrote:
> Bob Barrows [MVP] wrote on 26 sep 2007 in
> microsoft.public.inetserver.asp.general:
>
>> BarryX wrote:
>>> Hi,
>>>
>>> How do I simulate this from the server side:
>>>
>>> >>> action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">
>>>
>
>
>> 1. In server-side code, use Microsoft.ServerXMLHTTP
>> 2. I don;'t think this is possible due to security restrictions. What
>> are you trying to accomplish?
>>
>>
>
> <%
> url = "http://www.espn.com/main.html"
> set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
> xmlhttp.open "POST", url, false
> xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-
> urlencoded"
> xmlhttp.send "x=1&y=2"
> Response.write xmlhttp.responseText
> set xmlhttp = nothing
> %>
>
> > remote-web-page.html>
>
I'm not sure what your point is ... how does this help the OP accomplish
his task?

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.

Re: Simulate form post from Server Side

am 26.09.2007 18:42:25 von exjxw.hannivoort

Bob Barrows [MVP] wrote on 26 sep 2007 in
microsoft.public.inetserver.asp.general:

> Evertjan. wrote:
>> Bob Barrows [MVP] wrote on 26 sep 2007 in
>> microsoft.public.inetserver.asp.general:
>>
>>> BarryX wrote:
>>>> Hi,
>>>>
>>>> How do I simulate this from the server side:
>>>>
>>>> >>>> action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">
>>>>
>>
>>
>>> 1. In server-side code, use Microsoft.ServerXMLHTTP
>>> 2. I don;'t think this is possible due to security restrictions.
>>> What are you trying to accomplish?
>>>
>>>
>>
>> <%
>> url = "http://www.espn.com/main.html"
>> set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
>> xmlhttp.open "POST", url, false
>> xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-
>> urlencoded"
>> xmlhttp.send "x=1&y=2"
>> Response.write xmlhttp.responseText
>> set xmlhttp = nothing
>> %>
>>
>> >> remote-web-page.html>
>>
> I'm not sure what your point is ... how does this help the OP
> accomplish his task?
>

Oops, I should have quoted Shakespeare, not aspfaq.

["A form by any other name ..."]


<%
url = "http://www.espn.com/main.html"
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-
urlencoded"
xmlhttp.send "theFormName=myNewForm"
Response.write xmlhttp.responseText
set xmlhttp = nothing
%>

[Doing what html can only do in a (possibly hidden) input]


--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

Re: Simulate form post from Server Side

am 29.09.2007 13:11:02 von BarryX

This looks promising Evertjan.

Will mess with it. Thanks.


"Evertjan." wrote in message
news:Xns99B7BE4C6C278eejj99@194.109.133.242...
> Bob Barrows [MVP] wrote on 26 sep 2007 in
> microsoft.public.inetserver.asp.general:
>
> > Evertjan. wrote:
> >> Bob Barrows [MVP] wrote on 26 sep 2007 in
> >> microsoft.public.inetserver.asp.general:
> >>
> >>> BarryX wrote:
> >>>> Hi,
> >>>>
> >>>> How do I simulate this from the server side:
> >>>>
> >>>> > >>>> action="http://SOMEURL/Search.ASP?Parm1=1&Parm2=2">
> >>>>
> >>
> >>
> >>> 1. In server-side code, use Microsoft.ServerXMLHTTP
> >>> 2. I don;'t think this is possible due to security restrictions.
> >>> What are you trying to accomplish?
> >>>
> >>>
> >>
> >> <%
> >> url = "http://www.espn.com/main.html"
> >> set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
> >> xmlhttp.open "POST", url, false
> >> xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-
> >> urlencoded"
> >> xmlhttp.send "x=1&y=2"
> >> Response.write xmlhttp.responseText
> >> set xmlhttp = nothing
> >> %>
> >>
> >> > >> remote-web-page.html>
> >>
> > I'm not sure what your point is ... how does this help the OP
> > accomplish his task?
> >
>
> Oops, I should have quoted Shakespeare, not aspfaq.
>
> ["A form by any other name ..."]
>
>
> <%
> url = "http://www.espn.com/main.html"
> set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
> xmlhttp.open "POST", url, false
> xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-
> urlencoded"
> xmlhttp.send "theFormName=myNewForm"
> Response.write xmlhttp.responseText
> set xmlhttp = nothing
> %>
>
> [Doing what html can only do in a (possibly hidden) input]
>
>
> --
> Evertjan.
> The Netherlands.
> (Please change the x'es to dots in my emailaddress)

Re: Simulate form post from Server Side

am 29.09.2007 15:52:06 von BarryX

This is a multi-part message in MIME format.

------=_NextPart_000_00C8_01C802A8.4DF0FF20
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


It might help if I describe the full problem. I am trying to simulate =
this:
=20
action=3D"Search.ASP?WCI=3DgetPage">













So URL parameters AND form parameters going to the POSTed server. This =
is currently triggered from the client side with a click to this:
=20
javascript:document.SearchForm.PAGE.value=3D'2';document.Sea rchForm.submi=
t();

Doing the above works OK so all I want to do is simulate this. The =
object being to bring back page 2 of N pages. A parameter is being =
passed to the server by doing this. So I really need to simulate: =
SearchForm.PAGE.value=3D'2'. The server belongs to someone else so I =
can't change anything at the POSTed end.
=20
My Server Side code to simulate is as follows:

Set xml =3D Server.CreateObject("MSXML2.ServerXMLHTTP")
strURL =3D "?WCI=3DgetPage" & _
"&IsPortfolio" & _
"&DEL" & _
"&PropertyID" & _
">YP=3D0" & _ =20
"&PAGE=3D2" & _
"&PER=3D5" & _
"&SearchForm.asp" & _
"&StyleSheet" & _
"&STYPE=3D0" & _
"&Exit" & _
"&GID=3D422" & _
"&CURRENCY=3DGBP"
xml.Open "POST","search.asp" & strURL, False

' ???????????????? Maybe this is the area=20
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.Send "SearchForm"
=20
' Create XML DOM object for the XML
Set xmlDoc =3D Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async =3D False
xmlDoc.loadXML xml.responseText
=20
' Create DOM object for the XSL
Set xslDoc =3D Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async =3D False
=20
' Load a stylesheet
xslDoc.load (Server.MapPath("Summary.XSLT")) =20
=20
' Convert XML using XSL to HTML
strHTML =3D xmlDoc.transformNode(xslDoc)
=20
' Send to client
Response.Write strHTML
=20
' All finished
Set xml =3D Nothing
Set xslDoc =3D Nothing=20
Set xmlDoc =3D Nothing

Any help appreciated.
Barry.


"BarryX" wrote in message =
news:uWLMjjoAIHA.5184@TK2MSFTNGP02.phx.gbl...
>=20
> This looks promising Evertjan.
>=20
> Will mess with it. Thanks.
>=20
>=20
> "Evertjan." wrote in message
> news:Xns99B7BE4C6C278eejj99@194.109.133.242...
> > Bob Barrows [MVP] wrote on 26 sep 2007 in
> > microsoft.public.inetserver.asp.general:
> >
> > > Evertjan. wrote:
> > >> Bob Barrows [MVP] wrote on 26 sep 2007 in
> > >> microsoft.public.inetserver.asp.general:
> > >>
> > >>> BarryX wrote:
> > >>>> Hi,
> > >>>>
> > >>>> How do I simulate this from the server side:
> > >>>>
> > >>>> > > >>>> action=3D"http://SOMEURL/Search.ASP?Parm1=3D1&Parm2=3D2">
> > >>>>
> > >>
> > >>
> > >>> 1. In server-side code, use Microsoft.ServerXMLHTTP
> > >>> 2. I don;'t think this is possible due to security restrictions.
> > >>> What are you trying to accomplish?
> > >>>
> > >>>
> > >>
> > >> <%
> > >> url =3D "http://www.espn.com/main.html"
> > >> set xmlhttp =3D CreateObject("MSXML2.ServerXMLHTTP")
> > >> xmlhttp.open "POST", url, false
> > >> xmlhttp.setRequestHeader "Content-Type", =
"application/x-www-form-
> > >> urlencoded"
> > >> xmlhttp.send "x=3D1&y=3D2"
> > >> Response.write xmlhttp.responseText
> > >> set xmlhttp =3D nothing
> > >> %>
> > >>
> > >> =
> > >> remote-web-page.html>
> > >>
> > > I'm not sure what your point is ... how does this help the OP
> > > accomplish his task?
> > >
> >
> > Oops, I should have quoted Shakespeare, not aspfaq.
> >
> > ["A form by any other name ..."]
> >
> >
> > <%
> > url =3D "http://www.espn.com/main.html"
> > set xmlhttp =3D CreateObject("MSXML2.ServerXMLHTTP")
> > xmlhttp.open "POST", url, false
> > xmlhttp.setRequestHeader "Content-Type", =
"application/x-www-form-
> > urlencoded"
> > xmlhttp.send "theFormName=3DmyNewForm"
> > Response.write xmlhttp.responseText
> > set xmlhttp =3D nothing
> > %>
> >
> > [Doing what html can only do in a (possibly hidden) input]
> >
> >
> > --=20
> > Evertjan.
> > The Netherlands.
> > (Please change the x'es to dots in my emailaddress)
>=20
>
------=_NextPart_000_00C8_01C802A8.4DF0FF20
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable



charset=3Diso-8859-1">




 


size=3D2> color=3D#000000>It might help if I describe the full problem. I am =
trying to=20
simulate this:
 
<form name=3D"SearchForm" =
method=3D"POST"=20
id=3D"SearchForm" action=3D"Search.ASP?WCI=3DgetPage">
<input =
type=3D"hidden"=20
name=3D"PAGE">
<input type=3D"hidden" =
name=3D"IsPortfolio">
<input=20
type=3D"hidden" name=3D"DEL">
<input type=3D"hidden"=20
name=3D"PropertyID">
<input type=3D"hidden" name=3D"GTYP"=20
value=3D"0">
<input type=3D"hidden" name=3D"PER" =
value=3D"5">
<input=20
type=3D"hidden" name=3D"RestrictSearch" value=3D"">
<input =
type=3D"hidden"=20
Name=3D"StyleSheet" value=3D"">
<input type=3D"hidden" =
name=3D"STYPE"=20
value=3D"0">
<input type=3D"hidden" name=3D"Exit" =
value=3D"">
<input=20
type=3D"hidden" name=3D"GID" value=3D"422">
<input =
type=3D"hidden"=20
name=3D"CURRENCY" value=3D"GBP">

size=3D2> class=3D500132513-29092007> color=3D#000000>So URL=20
parameters AND form parameters going to the POSTed =
server
.=20
size=3D2> color=3D#000000>This is currently triggered from the client side with a =
click to=20
this:
 
javascript:document.SearchForm.PAGE.value=3D'2'=
;document.SearchForm.submit();

size=3D2> 

size=3D2> color=3D#000000>Doing the above works OK so all I want to do is =
simulate=20
this.
The object being to bring back page 2 =
of N=20
pages. A parameter is being passed to the server by doing =
this. So I=20
really need to simulate: SearchForm.PAGE.value=3D'2'. The server =
belongs to=20
someone else so I can't change anything at the POSTed=20
end.
 
class=3D500132513-29092007> size=3D2>My Server Side code to simulate is as=20
follows:
color=3D#0000ff=20
size=3D2>
color=3D#000000>
Set xml =
Server.CreateObject("MSXML2.ServerXMLHTTP")
    &n=
bsp;strURL=20
=3D "?WCI=3DgetPage"  & _
   =20
"&IsPortfolio"         &=
nbsp;           &n=
bsp;&=20
_
   =20
"&DEL"          &nb=
sp;        =20
& _
   =20
"&PropertyID"         &=20
_
   =20
"&GTYP=3D0"         &nbs=
p;  =20
& _    
   =20
"&PAGE=3D2"         &nbs=
p;    =20
& _
color=3D#0000ff=20
size=3D2>   =20
"&PER=3D5"          =
;    =20
& _
    =
"&SearchForm.asp"    =20
& _
   =20
"&StyleSheet"        &=20
_
   =20
"&STYPE=3D0"          =
&=20
_
   =20
"&Exit"          &n=
bsp;         =20
& _
   =20
"&GID=3D422"         &nb=
sp; &=20
_
    "&CURRENCY=3DGBP"
     =
xml.Open=20
"POST","search.asp" & strURL, False

size=3D2> color=3D#ff0000>' ???????????????? Maybe this is the=20
area 
xml.setRequestHeader "Content-Type",=20
"application/x-www-form-urlencoded"
xml.Send=20
"SearchForm"
 

' =
Create XML DOM=20
object for the XML
Set xmlDoc =
Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async =
False
xmlDoc.loadXML xml.responseText
 
' Create DOM =
object for=20
the XSL
Set xslDoc =3D =
Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async=20
=3D False
 
' Load a stylesheet
xslDoc.load=20
(Server.MapPath("Summary.XSLT")) 
 
' Convert XML using =
XSL to=20
HTML
strHTML =3D xmlDoc.transformNode(xslDoc)
 
' Send to=20
client
Response.Write strHTML
 
' All finished
Set xml =
=
Nothing
Set xslDoc =3D Nothing 
Set xmlDoc =
Nothing

 

Any help=20
appreciated.

size=3D2>Barry.

 

 

"BarryX" < href=3D"mailto:barry@praxcom.NOfreeserve.co.SPAMuk">barry@pr axcom.NOfrees=
erve.co.SPAMuk>=20
wrote in message href=3D"news:uWLMjjoAIHA.5184@TK2MSFTNGP02.phx.gbl">news:uWL MjjoAIHA.5184=
@TK2MSFTNGP02.phx.gbl...
>=20

> This looks promising Evertjan.
>
> Will mess with =
it.=20
Thanks.
>
>
> "Evertjan." < href=3D"mailto:exjxw.hannivoort@interxnl.net">exjxw.hannivoo rt@interxnl.n=
et>=20
wrote in message
> href=3D"news:Xns99B7BE4C6C278eejj99@194.109.133.242">news:Xn s99B7BE4C6C27=
8eejj99@194.109.133.242...
>=20
> Bob Barrows [MVP] wrote on 26 sep 2007 in
> >=20
microsoft.public.inetserver.asp.general:
> >
> > >=20
Evertjan. wrote:
> > >> Bob Barrows [MVP] wrote on 26 sep =
2007=20
in
> > >> =
microsoft.public.inetserver.asp.general:
> >=20
>>
> > >>> BarryX wrote:
> > =
>>>>=20
Hi,
> > >>>>
> > >>>> How do I =

simulate this from the server side:
> > =
>>>>
> >=20
>>>> <form name=3D"SearchForm" method=3D"POST"=20
id=3D"SearchForm"
> > >>>> action=3D" href=3D"http://SOMEURL/Search.ASP?Parm1=3D1&Parm2=3D2">h ttp://SOMEURL=
/Search.ASP?Parm1=3D1&Parm2=3D2">
>=20
> >>>>
> > >>
> > =
>>
> >=20
>>> 1. In server-side code, use Microsoft.ServerXMLHTTP
> =
>=20
>>> 2. I don;'t think this is possible due to security=20
restrictions.
> > >>> What are you trying to=20
accomplish?
> > >>>
> > >>>
> =
>=20
>>
> > >> <%
> >=20
>>     url =3D " href=3D"http://www.espn.com/main.html">http://www.espn.com/m ain.html"=

>=20
> >>     set xmlhttp =
CreateObject("MSXML2.ServerXMLHTTP")
> >=20
>>     xmlhttp.open "POST", url, false
> =
>=20
>>     xmlhttp.setRequestHeader =
"Content-Type",=20
"application/x-www-form-
> > >> urlencoded"
> >=20
>>     xmlhttp.send "x=3D1&y=3D2"
> =
>=20
>>     Response.write =
xmlhttp.responseText
>=20
> >>     set xmlhttp =3D nothing
> =
>=20
>> %>
> > >>
> > >> < href=3D"http://classicasp.aspfaq.com/general/how-do-i-read-t he-contents-o=
f-a">http://classicasp.aspfaq.com/general/how-do-i-read-the- contents-of-a=
-
>=20
> >> remote-web-page.html>
> > >>
> =
> >=20
I'm not sure what your point is ... how does this help the OP
> =
> >=20
accomplish his task?
> > >
> >
> > Oops, I =
should=20
have quoted Shakespeare, not aspfaq.
> >
> > ["A form =
by any=20
other name ..."]
> >
> >
> > <%
>=20
>     url =3D " href=3D"http://www.espn.com/main.html">http://www.espn.com/m ain.html"=

>=20
>     set xmlhttp =
CreateObject("MSXML2.ServerXMLHTTP")
> =
>    =20
xmlhttp.open "POST", url, false
> >    =20
xmlhttp.setRequestHeader "Content-Type", =
"application/x-www-form-
> >=20
urlencoded"
> >     xmlhttp.send=20
"theFormName=3DmyNewForm"
> >     =
Response.write=20
xmlhttp.responseText
> >     set xmlhttp =
=
nothing
> > %>
> >
> > [Doing what html =
can only=20
do in a (possibly hidden) input]
> >
> >
> > =
--=20

> > Evertjan.
> > The Netherlands.
> > =
(Please=20
change the x'es to dots in my emailaddress)
>
> =


------=_NextPart_000_00C8_01C802A8.4DF0FF20--

Re: Simulate form post from Server Side

am 30.09.2007 20:53:31 von Anthony Jones

BarryX" wrote in message
news:%23G2Rj9pAIHA.288@TK2MSFTNGP02.phx.gbl...
>>>>>>>>>>>>>>
It might help if I describe the full problem. I am trying to simulate this:

action="Search.ASP?WCI=getPage">













So URL parameters AND form parameters going to the POSTed server. This is
currently triggered from the client side with a click to this:

javascript:document.SearchForm.PAGE.value='2';document.Searc hForm.submit();

Doing the above works OK so all I want to do is simulate this. The object
being to bring back page 2 of N pages. A parameter is being passed to the
server by doing this. So I really need to simulate:
SearchForm.PAGE.value='2'. The server belongs to someone else so I can't
change anything at the POSTed end.

My Server Side code to simulate is as follows:

Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
strURL = "?WCI=getPage" & _
"&IsPortfolio" & _
"&DEL" & _
"&PropertyID" & _
">YP=0" & _
"&PAGE=2" & _
"&PER=5" & _
"&SearchForm.asp" & _
"&StyleSheet" & _
"&STYPE=0" & _
"&Exit" & _
"&GID=422" & _
"&CURRENCY=GBP"
xml.Open "POST","search.asp" & strURL, False

' ???????????????? Maybe this is the area
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.Send "SearchForm"

' Create XML DOM object for the XML
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.loadXML xml.responseText

' Create DOM object for the XSL
Set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
xslDoc.async = False

' Load a stylesheet
xslDoc.load (Server.MapPath("Summary.XSLT"))

' Convert XML using XSL to HTML
strHTML = xmlDoc.transformNode(xslDoc)

' Send to client
Response.Write strHTML

' All finished
Set xml = Nothing
Set xslDoc = Nothing
Set xmlDoc = Nothing

Any help appreciated.
Barry.
<<<<<<<<<<<

If you are doing simulations then one tool that is indispensible is
www.fiddlertool.com

With this running use a browser to perform a Form post you want to emulate.
You can now check the recorded session in the tool an you'll see what you
need to reproduce.

If you noticed from the example Evertjan gave you when the form method is a
POST the set of field values should be sent as the entity body of the
request, IOW a string encoded as URL search section is passed as the
paremeter of the send function.

Hence your code should look more like:-

Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

strURL = "http//host.domain.com/search.asp?WCI=getPage"

strDat = "IsPortfolio=" & _
"&DEL=" & _
"&PropertyID=" & _
">YP=0" & _
"&PAGE=2" & _
"&PER=5" & _
"&RestrictSearch=" & _
"&StyleSheet=" & _
"&STYPE=0" & _
"&Exit=" & _
"&GID=422" & _
"&CURRENCY=GBP"

xml.Open "POST",strURL, False
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.Send strDat

Note that any values that you might concatenate into the data needs to be
urlencoded,

BTW, are you sure the form post actually results in an XML response?


--
Anthony Jones - MVP ASP/ASP.NET

Re: Simulate form post from Server Side

am 01.10.2007 11:58:02 von BarryX

Hi Anthony,

Yes, definitely XML coming back.

The example:

javascript:document.SearchForm.PAGE.value='2';document.Searc hForm.submit()

was provided as a template example to me from the server owner. I could
simply do this and it would work fine. But then I would have to transform
the XML at the client side and I want it all on the server side.

Doing the above, ie. setting PAGE=2 from the client side does not seem to be
working when issued from the server side. Trouble is, it is very difficult
to work out why it doesn't work. I just get an empty page back.

Barry.



"Anthony Jones" wrote in message
news:O2AhzM5AIHA.4568@TK2MSFTNGP02.phx.gbl...
>
> BarryX" wrote in message
> news:%23G2Rj9pAIHA.288@TK2MSFTNGP02.phx.gbl...
> >>>>>>>>>>>>>>
> It might help if I describe the full problem. I am trying to simulate
this:
>
> > action="Search.ASP?WCI=getPage">
>
>
>
>
>
>
>
>
>
>
>
>
>
> So URL parameters AND form parameters going to the POSTed server. This is
> currently triggered from the client side with a click to this:
>
>
javascript:document.SearchForm.PAGE.value='2';document.Searc hForm.submit();
>
> Doing the above works OK so all I want to do is simulate this. The object
> being to bring back page 2 of N pages. A parameter is being passed to the
> server by doing this. So I really need to simulate:
> SearchForm.PAGE.value='2'. The server belongs to someone else so I can't
> change anything at the POSTed end.
>
> My Server Side code to simulate is as follows:
>
> Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
> strURL = "?WCI=getPage" & _
> "&IsPortfolio" & _
> "&DEL" & _
> "&PropertyID" & _
> ">YP=0" & _
> "&PAGE=2" & _
> "&PER=5" & _
> "&SearchForm.asp" & _
> "&StyleSheet" & _
> "&STYPE=0" & _
> "&Exit" & _
> "&GID=422" & _
> "&CURRENCY=GBP"
> xml.Open "POST","search.asp" & strURL, False
>
> ' ???????????????? Maybe this is the area
> xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
> xml.Send "SearchForm"
>
> ' Create XML DOM object for the XML
> Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
> xmlDoc.async = False
> xmlDoc.loadXML xml.responseText
>
> ' Create DOM object for the XSL
> Set xslDoc = Server.CreateObject("Microsoft.XMLDOM")
> xslDoc.async = False
>
> ' Load a stylesheet
> xslDoc.load (Server.MapPath("Summary.XSLT"))
>
> ' Convert XML using XSL to HTML
> strHTML = xmlDoc.transformNode(xslDoc)
>
> ' Send to client
> Response.Write strHTML
>
> ' All finished
> Set xml = Nothing
> Set xslDoc = Nothing
> Set xmlDoc = Nothing
>
> Any help appreciated.
> Barry.
> <<<<<<<<<<<
>
> If you are doing simulations then one tool that is indispensible is
> www.fiddlertool.com
>
> With this running use a browser to perform a Form post you want to
emulate.
> You can now check the recorded session in the tool an you'll see what you
> need to reproduce.
>
> If you noticed from the example Evertjan gave you when the form method is
a
> POST the set of field values should be sent as the entity body of the
> request, IOW a string encoded as URL search section is passed as the
> paremeter of the send function.
>
> Hence your code should look more like:-
>
> Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
>
> strURL = "http//host.domain.com/search.asp?WCI=getPage"
>
> strDat = "IsPortfolio=" & _
> "&DEL=" & _
> "&PropertyID=" & _
> ">YP=0" & _
> "&PAGE=2" & _
> "&PER=5" & _
> "&RestrictSearch=" & _
> "&StyleSheet=" & _
> "&STYPE=0" & _
> "&Exit=" & _
> "&GID=422" & _
> "&CURRENCY=GBP"
>
> xml.Open "POST",strURL, False
> xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
> xml.Send strDat
>
> Note that any values that you might concatenate into the data needs to be
> urlencoded,
>
> BTW, are you sure the form post actually results in an XML response?
>
>
> --
> Anthony Jones - MVP ASP/ASP.NET
>
>

Re: Simulate form post from Server Side

am 02.10.2007 09:04:25 von Anthony Jones

"BarryX" wrote in message
news:uZkrDEBBIHA.3780@TK2MSFTNGP05.phx.gbl...
>
> Hi Anthony,
>
> Yes, definitely XML coming back.
>
> The example:
>
> javascript:document.SearchForm.PAGE.value='2';document.Searc hForm.submit()
>
> was provided as a template example to me from the server owner. I could
> simply do this and it would work fine. But then I would have to transform
> the XML at the client side and I want it all on the server side.
>
> Doing the above, ie. setting PAGE=2 from the client side does not seem to
be
> working when issued from the server side. Trouble is, it is very difficult
> to work out why it doesn't work. I just get an empty page back.
>

1) Install fiddler.
2) Build a VBScript file to emulate POST (use XmlHttp not ServerXmlHttp).
3) With fiddler use suppliers example of making post.
4) Use VBScript file to make the post.
5) In fiddler compare POSTs made by the two approaches
6) Adjust VBScript until its requests matches the suppliers example
7) Tweak script to use ServerXMLHTTP and check it still works
8) Install code into ASP.




--
Anthony Jones - MVP ASP/ASP.NET