Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically send a HTTP request with parameters? [duplicate]

If I use a browser to send information to the server (for example using a log-in, password page), I just fill the user text-box and the password text-box and clicking on the log-in button.

I would like to send this information but without having to use the browser. I would like to 'fill' the text-boxes but without having to do it manually in the browser. May be using a Servlet.

My question is: How to send information in text-boxes, for example, to a website, doing it from a Servlet?

like image 791
fernandohur Avatar asked May 09 '11 04:05

fernandohur


1 Answers

why not just make a call to the URL from Java using a URL like http://your.domain.name/your/servlet/path?userFieldName=THE_VALUE_YOU_WANT_TO_PASS&passwdFieldName=PASSWORD

The servlet will feel like the values are coming from those boxes.

Or you may want to dive into Apache HTTP Client to mimick a request sent from an client.

uh..oh.. are you doing functional testing? Why not look into JMeter?


Updates as per comment

You need to know what actually form submission does? It basically forms a query string composed of Key-Values (KV) pair.

So, if you have a a text field named tfield where user has typed some text, and there is a drop down named, ddfield where user has selected optionX which has value optionX-Val. And this form gets submitted to a URL, http://my.domain.name/my/servlet -- the browser will send a request which will look like

http://my.domain.name/my/servlet?tfield=some%20text&ddfield=optionX-Val

If you want to mimic form submission, you will have to manually create a URL that has a request string containing all the fields and their values as FIELD_NAME=FIELDVALUE ordered pair separated by ampersand (&)


ah, great idea. If you use Firebug (a Firefox extension), open the NET panel in Firebug, make a manual submission of the form that you wanted to mimic. See what request is posted when you submitted the form. It will have exact URL format that you are after. Copy this URL, replace the values and make fake submissions as much as you want.

Hope this helps.

like image 126
Nishant Avatar answered Oct 14 '22 18:10

Nishant