Java 如何将HTTP post发送到CGI脚本
我尝试了Java技巧,但没有成功。我所说的不成功,是指我读到的回复是同一页 这是第一页的部分截图- 如您所见,我正在尝试填写用户名和密码/密码字段。这将允许我访问其他感兴趣的页面。如果有帮助,下面是表单标记的一个片段- 此外,这里还有两个文本字段的一个片段,如果这也有帮助的话-Java 如何将HTTP post发送到CGI脚本,java,cgi,http-post,Java,Cgi,Http Post,我尝试了Java技巧,但没有成功。我所说的不成功,是指我读到的回复是同一页 这是第一页的部分截图- 如您所见,我正在尝试填写用户名和密码/密码字段。这将允许我访问其他感兴趣的页面。如果有帮助,下面是表单标记的一个片段- 此外,这里还有两个文本字段的一个片段,如果这也有帮助的话- <input type="text" name="web0x120010" id="txtUserName" size="26" class="txtbox" maxlength="31"> <inp
<input type="text" name="web0x120010" id="txtUserName" size="26" class="txtbox" maxlength="31">
<input type="password" name="web0x120011" id="txtPwd" size="26" class="txtbox" maxlength="64">
当我像示例中那样填写内容时,我使用了txtexername
和txtPwd
,但这不起作用。有什么想法或其他资源可以帮助我吗
如果这还不够清楚,请让我知道-谢谢 发布名称(web0x120010
和web0x120011
),而不是输入框的ID,并发布umi.loginAuth=Login
键值对。如果没有帮助,请安装HttpFox Firefox扩展,记录一个正常的登录请求,并检查日志中的post参数
根据,您也应该注意cookies。发布名称(web0x120010
和web0x120011
),而不是输入框的ID,并发布umi.loginAuth=Login
键值对。如果没有帮助,请安装HttpFox Firefox扩展,记录一个正常的登录请求,并检查日志中的post参数
根据,您也应该注意cookies。如果您的问题是发布一些数据并进入网站,那么我建议您使用基本上针对此类问题创建的库。 向站点调用post方法的典型方法如下(from)
HttpClient=newdefaulthttpclient();
HttpPost=新的HttpPost(“http://vogellac2dm.appspot.com/register");
试一试{
List nameValuePairs=新的ArrayList(1);
添加(新的BasicNameValuePair(“注册ID”),
"123456789"));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=client.execute(post);
BufferedReader rd=新的BufferedReader(新的InputStreamReader(
response.getEntity().getContent());
字符串行=”;
而((line=rd.readLine())!=null){
系统输出打印项次(行);
}
}捕获(IOE异常){
e、 printStackTrace();
}
这对您来说非常方便,您不必像HttClient那样管理会话。如果您使用相同的HttpClient实例,那么在登录后访问后续页面非常重要 如果您的问题是发布一些数据并进入站点,那么我建议您使用基本上针对此类问题创建的库。 向站点调用post方法的典型方法如下(from)
HttpClient=newdefaulthttpclient();
HttpPost=新的HttpPost(“http://vogellac2dm.appspot.com/register");
试一试{
List nameValuePairs=新的ArrayList(1);
添加(新的BasicNameValuePair(“注册ID”),
"123456789"));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=client.execute(post);
BufferedReader rd=新的BufferedReader(新的InputStreamReader(
response.getEntity().getContent());
字符串行=”;
而((line=rd.readLine())!=null){
系统输出打印项次(行);
}
}捕获(IOE异常){
e、 printStackTrace();
}
这对您来说非常方便,您不必像HttClient那样管理会话。如果您使用相同的HttpClient实例,那么在登录后访问后续页面非常重要 谢谢:)请注意@Santosh对Apache的HttpClient的建议是一个更好、更干净的解决方案,因为您不必关心Cookie。谢谢:)请注意@Santosh对Apache的HttpClient的建议是一个更好、更干净的解决方案,因为您不必关心Cookie。
<input type="submit" value="Login" name="umi.loginAuth" class="b0" title="Login" onclick="return loginValidate ()">
<input type="text" name="web0x120010" id="txtUserName" size="26" class="txtbox" maxlength="31">
<input type="password" name="web0x120011" id="txtPwd" size="26" class="txtbox" maxlength="64">
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://vogellac2dm.appspot.com/register");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("registrationid",
"123456789"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}