Разделение URL на хост и путь

#java

#java

Вопрос:

У меня есть программа, в которой есть кнопка, которая выводит HTML-текст веб-адреса.У меня есть переменная, у которой уже будет адрес в текстовом поле, проблема в том, что если я изменю текст в текстовом поле на другой адрес, он все равно распечатает тот же HTML-адрес. Я плохо сформулировал эту проблему, но, надеюсь, это понятно. Я хочу иметь возможность вводить URL и получать этот адрес html вместо того, чтобы каждый раз заходить в код и изменять переменную вручную.

 /* Create a HttpInteract object. */
    public HttpInteract(String url) {

        /* Split the "URL" into "host name" and "path name", and
        * set host and path class variables. 
        * if URL is only a host name, use "/" as path 
        */  
        System.out.println("URL splits into host name and path name.");
        host = "cgi.csc.liv.ac.uk";
        System.out.println("Host is:"  host);
        path = "/~gairing/test.txt";
        System.out.println("Path is:"  path);        

        //Request message. Connection closes after response because http 1.0
        //is non persistent
        requestMessage= "GET " path  " HTTP/1.1rn"
                         "Host: "  host   "rn"
                         "rn" ;

        return;
    }   
  

Комментарии:

1. docs.oracle.com/javase/8/docs/api/java/net/URI.html

2. Лучше всего использовать класс (см. Выше), потому что он выполняет синтаксический анализ. Синтаксический анализ URL выглядит простым, но на самом деле он сложнее, чем ожидалось (подумайте о «Многоязычных веб-адресах»).

Ответ №1:

Простой пример использования URL:

     // Note that you need protocol for valid URL
    URL url = new URL("http://cgi.csc.liv.ac.uk/~gairing/test.txt");

    System.out.println("Host:"   url.getHost());
    System.out.println("Path:"   url.getPath());
  

Комментарии:

1. Но я хочу иметь возможность использовать его, чтобы я мог указать любой адрес, это просто получает один и тот же адрес каждый раз, не так ли?

2. Это всего лишь пример. Введите любой URL, который вы хотите. Просто убедитесь, что у вас есть протокол в нем.