1

我想登录一个网站,但如果我尝试使用以下代码:包 URL;

//Variables to hold the URL object and its connection to that URL.
import java.net.*;
import java.io.*;

public class URLLogin {
    private static URL URLObj;
private static URLConnection connect;

public static void main(String[] args) {
    try {
        // Establish a URL and open a connection to it. Set it to output mode.
        URLObj = new URL("http://login.szn.cz");
        connect = URLObj.openConnection();
        connect.setDoOutput(true);        
    }
    catch (MalformedURLException ex) {
        System.out.println("The URL specified was unable to be parsed or uses an invalid protocol. Please try again.");
        System.exit(1); 
    }
    catch (Exception ex) {
        System.out.println("An exception occurred. " + ex.getMessage());
        System.exit(1);
    }


    try {
        // Create a buffered writer to the URLConnection's output stream and write our forms parameters.
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connect.getOutputStream(),"UTF-8"));
        writer.write("username=S&password=s&login=Přihlásit se");
        writer.close();

     // Now establish a buffered reader to read the URLConnection's input stream.
        BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getInputStream()));

        String lineRead = "";

        Read all available lines of data from the URL and print them to screen.
        while ((lineRead = reader.readLine()) != null) {
            System.out.println(lineRead);
        }

        reader.close();  
    }
    catch (Exception ex) {
        System.out.println("There was an error reading or writing to the URL: " + ex.getMessage());
    }
}
}

我收到此错误:

读取或写入 URL 时出错:服务器返回 HTTP 响应代码:405 对于 URL: http: //login.szn.cz

这是我可以登录该网站的一种方式吗?或者我可以在 Opera 浏览器中使用带有登录信息的 cookie?

感谢所有建议。

4

1 回答 1

0

您可以调用URL对象的openConnection方法来获取URLConnection对象。您可以使用此URLConnection对象设置连接之前可能需要的参数和一般请求属性。URL仅在调用该方法时才启动到由 表示的远程对象的连接URLConnection.connect。以下代码打开与站点example.com的连接:

try {
    URL myURL = new URL("http://login.szn.cz");
    URLConnection myURLConnection = myURL.openConnection();
    myURLConnection.connect();
} 
catch (MalformedURLException e) { 
    // new URL() failed
    // ...
} 
catch (IOException e) {   
    // openConnection() failed
    // ...
}

URLConnection每次调用openConnectionthis 的协议处理程序的方法都会创建一个新对象URL

另请参阅这些链接..

于 2013-04-04T19:08:08.743 回答