Solved

HTTP Post to external website form

Posted on 2008-10-08
8
2,215 Views
Last Modified: 2009-07-29
Hi

I am busy doing investigation into HTTP Posts to other websites. I found the code below which is used for posting HTTP Data to another website form.

My question is simply:
Does this process actually trigger a Form Submit action on the external website??

Thanks
(Please note the code is just a copy from another post simply to indicate what is happening and has not been tested - the question is more theoretical)
///////////////////////////////////////////////////////////////////////////////////////////
ASCIIEncoding encoding =new ASCIIEncoding();
 
string postData  ="p1=" + "FP98";
postData +="p2="  + ordertime;
postData +="p3="  + "Shop";
 
 
byte[]  data = encoding.GetBytes(postData);
 
// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.aaa.com/vvonline/ccform.asp");
myRequest.Method      = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();
// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();

Open in new window

0
Comment
Question by:djcheeky
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
8 Comments
 
LVL 2

Expert Comment

by:schalcraft
ID: 22668100
In theory, yes, submitting forms to a remote site does work. However, if the remote site doesnt want to allow this, then they wil have taken steps to ensure it cant be done.
0
 

Author Comment

by:djcheeky
ID: 22668130
Thanks - but what I'm asking is will the code above actually trigger a Form submit action with the data provided on the remote site?
0
 
LVL 8

Expert Comment

by:MatthiasVance
ID: 22668229
You mean like the javascript onSubmit event?
No it doesn't get fired.

Kind regards,

Matthias Vance
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:djcheeky
ID: 22668287
Hi again, Let me elaborate:

The code above creates an HTTP FORM request and sends it to a remote website.

What I would like to know is whether this request that is passed via the code below is the same as someone submitting a form with the same data on the remote website?

Thanks


newStream.Write(data,0,data.Length);

Open in new window

0
 
LVL 8

Expert Comment

by:MatthiasVance
ID: 22668801
No it's not the same. You are only posting the data that you specify in your program. A form on a website might contain hidden fields etc.

Kind regards,

Matthias Vance
0
 

Author Comment

by:djcheeky
ID: 22668923
Yes, but if the form on the remote site is expeecting form items:
* name
* surname
* age

And I run the code executed below, passing the name,surname and age via the HTTP post request, does that yield the same result as if I had typed in those value into the HTTP form on the remote site and submitted?

Please read what I have written and try to understand it.
Thanks
string postData  ="name=John";
postData +="surname=Smith";
postData +="age=30";
 
 
byte[]  data = encoding.GetBytes(postData);
 
// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.aaa.com/vvonline/ccform.asp");
myRequest.Method      = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();
// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();

Open in new window

0
 
LVL 8

Accepted Solution

by:
MatthiasVance earned 50 total points
ID: 22669320
Yes, it would do exactly the same.
However, you need to change your code in order for it to work correctly.

Kind regards,

Matthias Vance
' Wrong code
string postData  ="name=John";
postData +="surname=Smith";
postData +="age=30";
 
' Right code
string postData = "name=John";
postData += "&surname=Smith";
postData += "&age=30";

Open in new window

0
 

Author Comment

by:djcheeky
ID: 22676094
Aah - ok thanks - Yeah - I grabbed the code from somewhere else and I suspected it may not be perfect :)
Just wanted to know whether they yield the same effect, which they do, so thanks :)
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

739 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