Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 Html表单处理未返回输入的数据字符串_Java - Fatal编程技术网

Java Html表单处理未返回输入的数据字符串

Java Html表单处理未返回输入的数据字符串,java,Java,正在尝试自动填充此html表单并在下一页返回数据。传递的数据没有返回与站点中的数据匹配的方式。 代码如下: parseSite() throws Exception { Map<String, String> data = new HashMap<>(); data.put("txtEntryReg1", "35806573CB"); data.put("txtEntryReg2", "35806573CB"); data.put("t3",

正在尝试自动填充此html表单并在下一页返回数据。传递的数据没有返回与站点中的数据匹配的方式。 代码如下:

parseSite() throws Exception
{
     Map<String, String> data = new HashMap<>();
  data.put("txtEntryReg1", "35806573CB");
    data.put("txtEntryReg2", "35806573CB");
   data.put("t3", "8/30/2013 2:37:30 AM*");
   data.put("t3", "4:3844: 1NB/9143/21 *");

 data.put("btnSubmit2","+Print+Your+Payment+Invoice");
  //data.putAll("txtEntryReg1=35278160IG&txtEntryReg2=35278160IG&t3=4%3A3623%3A+5NB%2F9143%2F21+*&t3=8%2F30%2F2013+2%3A15%3A24+AM*&btnSubmit2=+Print+Your+Payment+Invoice");
     //data.putAll(data);

     //key1=value1&key2=value2&key3=value3

        doSubmit("http://poters.com.ng/mo/std/acp_slp/1/default.aszp", data);

}

    public void doSubmit(String url, Map<String, String> data) throws Exception {
    URL siteUrl = new URL(url);
    HttpURLConnection conn = (HttpURLConnection) siteUrl.openConnection();
           // conn.setRequestProperty("Cookie", "__utma=244564033.513877751.1371763186.1376824439.1376824439.39; __utmc=244564033; __utmz=244564033.1373732391.30.3.utmcsr=login.lionet50.net|utmccn=(referral)|utmcmd=referral|utmcct=/login");
    conn.setRequestMethod("POST");
    conn.setDoInput(true);
            conn.setDoOutput(true);


    DataOutputStream out = new DataOutputStream(conn.getOutputStream());

    Set keys = data.keySet();
    Iterator keyIter = keys.iterator();
    String content = "";

            for(int i=0; keyIter.hasNext(); i++) {
        Object key = keyIter.next();
        if(i!=0) {
            content += "&";
        }
        content += key + "=" + URLEncoder.encode(data.get(key), "UTF-8");
    }


    System.out.println(content);
    out.writeBytes(content);
    out.flush();
    out.close();
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line = "";
    while((line=in.readLine())!=null) {
        System.out.println(line);
    }
    in.close();
}`
parseSite()引发异常
{
映射数据=新的HashMap();
数据输入(“txtEntryReg1”、“35806573CB”);
数据输入(“txtEntryReg2”、“35806573CB”);
数据输入(“t3”,“2013年8月30日2:37:30上午*”;
数据输入(“t3”,“4:3844:1NB/9143/21*”);
数据输入(“btnSubmit2”,“打印+付款+发票”);
//data.putAll(“txtEntryReg1=35278160IG&txtEntryReg2=35278160IG&t3=4%3A3623%3A+5NB%2F9143%2F21+*&t3=8%2F30%2F2013+2%3A15%3A24+AM*&btnSubmit2=+打印+付款+发票”);
//data.putAll(数据);
//key1=value1&key2=value2&key3=value3
多苏米特(“http://poters.com.ng/mo/std/acp_slp/1/default.aszp“,数据);
}
公共void doSubmit(字符串url、映射数据)引发异常{
URL siteUrl=新URL(URL);
HttpURLConnection conn=(HttpURLConnection)siteUrl.openConnection();
//conn.setRequestProperty(“Cookie”),“\uuuuUTMA=244564033.513877751.1371763186.1376824439.1376824439.39;\uuuuuUTMC=244564033;\uuuuUTMz=244564033.1373732391.30.3.utmcsr=login.lionet50.net | utmccn=(转介)\umcmd=转介| utmct=/login”);
conn.setRequestMethod(“POST”);
conn.setDoInput(真);
连接设置输出(真);
DataOutputStream out=新的DataOutputStream(conn.getOutputStream());
Set keys=data.keySet();
迭代器keyIter=keys.Iterator();
字符串内容=”;
for(int i=0;keyIter.hasNext();i++){
objectkey=keyIter.next();
如果(i!=0){
内容+=“&”;
}
content+=key+“=”+urlcoder.encode(data.get(key),“UTF-8”);
}
系统输出打印项次(内容);
out.writeBytes(内容);
out.flush();
out.close();
BufferedReader in=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
字符串行=”;
而((line=in.readLine())!=null){
系统输出打印项次(行);
}
in.close();
}`
打印时的数据,即System.out.println(内容)。返回

&t3=4%3A3844%3A+1NB%2F9143%2F21+*&txtEntryReg2=35806573CB&btnSubmit2=%2打印%2您的%2付款%2发票

但我想把它打印出来
txtEntryReg1=35278160IG&txtEntryReg2=35278160IG&t3=+%3A3112%3A+8NB%2F0%2F213422*&t3=9%2F1%2F2013+12%3A00%3A17+AM*&btnSubmit=+Create+Payment+Invoice

已尝试更改数据。按(…,…)顺序排列,但没有任何操作仍然有效。
有人请帮忙

那是因为
哈希映射
不能保留插入记录的顺序。您可以改用
LinkedHashMap


但是,为什么顺序很重要?

这是因为
HashMap
不保留插入记录的顺序。您可以改用
LinkedHashMap


但是,为什么顺序很重要?

除了以下问题之外,代码中没有此类问题:

您将两次输入
t3
的值,因此贴图将覆盖它,您将只获得一个值。此外,
LinkedHashMap
将有助于维护订单。我不确定这是否是优先事项

如果您担心编码的URL,请使用URL解码获得您可以阅读的内容。可按如下方式使用:

    URLDecoder.decode(encodedURL)

除了以下问题外,代码中没有此类问题:

您将两次输入
t3
的值,因此贴图将覆盖它,您将只获得一个值。此外,
LinkedHashMap
将有助于维护订单。我不确定这是否是优先事项

如果您担心编码的URL,请使用URL解码获得您可以阅读的内容。可按如下方式使用:

    URLDecoder.decode(encodedURL)

顺序很重要,因为我正在测试的站点返回解析的in记录的顺序是“txtEntryReg1=35278160IG&txtEntryReg2=35278160IG&t3=+%3A3112%3A+8NB%2F0%2F213422*&t3=9%2F1%2F2013+12%3A00%3A17+am*&btnSubmit=+Create+Payment+Invoice”,但一个矿是按此顺序返回的“&t3=4%3A3844%3A+1NB%2F9143%2F21+*&txtEntryReg2=35806573CB&btnSubmit2=%2BPrint%2BYour%2BPayment%2BInvoice”订单很重要,因为我正在测试的站点按此顺序返回解析后的记录“txtEntryReg1=35278160IG&txtEntryReg2=35278160IG&t3=+%3A3112%3A+8NB%2F0%2F213422*&t3=9%2F1%2F1+12%3A100%3A17+am*&btnSubmit=+Create+Payment“但这一个矿正在按此顺序返回”&t3=4%3A3844%3A+1NB%2F9143%2F21+*&txtEntryReg2=35806573CB&btnSubmit2=%2BPrint%2BYour%2BPayment%2BInvoice“哇!!!谢谢亨利和达拉姆。它现在工作得很好。。。问题只是我改为LinkedHashMap的顺序。再次感谢哇!!!谢谢亨利和达拉姆。它现在工作得很好。。。问题只是我改为LinkedHashMap的顺序。再次感谢