我有一个java问题,希望能得到一些帮助。 在我的应用程序中,我从网站获得随机验证码图像。用户将验证码字母写入文本区域,然后单击按钮以验证代码。
将代码+从网站收到验证码的日期和时间作为参数添加到网站。如果代码正确,网站写“真”,否则写“假”。
我的问题是网站总是写“假”,即使代码是正确的。
我甚至不知道我是否有正确的方法? 至少我知道网址是正确的(格式为:http://xxxxxx.php?code=ddd&date=Sat%2C+14+Feb+2015+21%3A14%3A20)
编辑: 我不需要验证代码,只需将其发送到网页,网页就会自动对其进行验证。我所要做的就是将参数(code + formatteddate)发送到网页。 有什么建议吗?
在测试课程中:
public void validateURL() throws IOException {
String code = textArea.getText(); //Get code from textArea
String validation = myCaptcha.validateCode(code); //Call to method validateCode();
switch (validation) {
case "true":
JOptionPane.showMessageDialog (null, "Right code");
break;
case "false":
JOptionPane.showMessageDialog (null, "wrong code");
break;
}
}
在Capthca课程中:
public String validateCode(String code) throws IOException {
String link = "http://xxxxxxx.php?"+"code="+code+"&date="+formattedDate;
URL url = new URL(link);
URLConnection connection = url.openConnection();
//connection.setRequestProperty("Accept-Charset", "UTF-8");
//connection.setDoInput(true);
//connection.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
String text = br.readLine();
while (text != null)
{
sb.append(text);
text = br.readLine();
}
br.close();
connection.getInputStream().close();
return sb.toString();
}