Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将HTTP post发送到CGI脚本_Java_Cgi_Http Post - Fatal编程技术网

Java 如何将HTTP post发送到CGI脚本

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

我尝试了Java技巧,但没有成功。我所说的不成功,是指我读到的回复是同一页

这是第一页的部分截图-

如您所见,我正在尝试填写用户名和密码/密码字段。这将允许我访问其他感兴趣的页面。如果有帮助,下面是表单标记的一个片段-

此外,这里还有两个文本字段的一个片段,如果这也有帮助的话-

<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();
        }