如何以编程方式发送带参数的HTTP请求?

fer*_*hur 15 java servlets http

如果我使用浏览器向服务器发送信息(例如使用登录,密码页面),我只需填写用户文本框和密码文本框,然后单击登录按钮.

我想发送此信息,但无需使用浏览器.我想"填充"文本框,但无需在浏览器中手动完成.可能正在使用Servlet.

我的问题是:如何在文本框中发送信息,例如,从Servlet发送到网站?

Nis*_*ant 8

为什么不使用像http://your.domain.name/your/servlet/path?userFieldName=THE_VALUE_YOU_WANT_TO_PASS&passwdFieldName=PASSWORD这样的URL来调用Java中的URL

servlet会感觉价值来自那些盒子.

或者您可能想要深入Apache HTTP Client来模仿客户端发送的请求.

呃......你在做功能测试吗?为什么不看看JMeter


根据评论更新

你需要知道提交的实际形式是什么吗?它基本上形成一个由键值(KV)对组成的查询字符串.

因此,如果您有一个名为tfielduser in typed的文本字段some text,并且有一个名为drop down的ddfield用户已选择optionX哪个有值optionX-Val.并且此表单将提交到URL,http://my.domain.name/my/servlet- 浏览器将发送一个看起来像的请求

http://my.domain.name/my/servlet?tfield=some%20text&ddfield=optionX-Val
Run Code Online (Sandbox Code Playgroud)

如果您想模仿表单提交,则必须手动创建一个URL,其中包含一个请求字符串,其中包含所有字段及其值,因为FIELD_NAME = FIELDVALUE有序对由&符号分隔(&)


啊,好主意.如果您使用Firebug(Firefox扩展),请在Firebug中打开NET面板,手动提交您想要模仿的表单.查看提交表单时发布的请求.它将具有您所追求的确切URL格式.复制此URL,替换值并根据需要进行虚假提交.

希望这可以帮助.