HTTP-запрос Java к локальному серверу apache - UnknownHostException - PullRequest
0 голосов
/ 13 мая 2019

Я использую локальный сервер apache с xampp на моих окнах. Я пытаюсь протестировать свой php-сервер с некоторыми запросами Http.

Я получаю исключение java.net.UnknownHostException при попытке установить соединение с моей программой Java. Я мог бы поменять местами и загрузить расширение Chrome для выполнения запросов, но позже я хочу получить доступ к своему серверу с помощью приложения для Android, написанного на Java, поэтому мне нужен рабочий код.

Сервер работает, и я могу получить к нему доступ с помощью Chrome.

Это мой код Java (без импорта и упаковки):

public class Main {

    public static void main(String[] args) {

        RemoteConnecter connector = new RemoteConnecter("", "");

        ArrayList<String> params = new ArrayList<String>();
        params.add("intent=connect");

        System.out.println(connector.request(params));
    }

  }


  public class RemoteConnecter {

    String password;
    String username;

    public RemoteConnecter(String username, String password) {
        this.password = password;
        this.username = username;
    }

    public String request(ArrayList<String> params) {

        String temp = null;

        String urllink = "https://www.Jobads43.wpm";
        URL url = null;
        HttpURLConnection con = null;

        try {
            url = new URL(urllink);
            con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);

            //params
            String urlParams = "user=" + username + "&password=" + password;
            for (int i = 0; i < params.size(); i++) {
                urlParams += "&" + params.get(i);
            }

            byte[] postData       = urlParams.getBytes( StandardCharsets.UTF_8 );
            int    postDataLength = postData.length;
            con.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
            con.setUseCaches( false );
            DataOutputStream output = new DataOutputStream( con.getOutputStream()/*Exception is thrown here*/);
            output.write( postData );

            BufferedReader in = null;
            in = new BufferedReader(new InputStreamReader(con.getInputStream()));

            StringBuffer sb = new StringBuffer();
            String line;


            while((line = in.readLine()) != null) {
                sb.append(line);
            }
            in.close();
            temp = sb.toString();

        }catch(Exception e) {
            e.printStackTrace();
        }

        return temp;
    }
}

Это выдержка из моего vhost.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:\path-is-correct-but-not-shown"
    ServerName Jobads43.wpm
    ServerAlias www.JobAds.local
    <Directory />
          Options FollowSymLinks
          AllowOverride All
          Require all granted
          Order allow,deny
          Allow from all
    </Directory>
    ErrorLog "C:\xampp\htdocs\log"
</VirtualHost>

А это у меня в хостах

127.0.0.1           Jobads43.wpm

Прошу прощения за форматирование, я не могу сделать это лучше ... В редактировании отформатирован лучше

Вы можете мне помочь?

UPDATE:
когда я использую URL "https://Jobads43.wpm", я получаю исключение javax.net.ssl.SSLHandshakeException
когда я использую URL "http://Jobads43.wpm" его работает.
Но мне нужно использовать протокол https для безопасной отправки моих данных. как сделать?

1 Ответ

0 голосов
/ 13 мая 2019

Stel 1: создание сертификата с использованием Java Keytool. Шаг 2: настройте apache для доступа к https вместо http. Для этого перейдите по ссылке ниже,

https://gist.github.com/nguyenanhtu/33aa7ffb6c36fdc110ea8624eeb51e69

Шаг 3: импортируйте тот же сертификат (который вы создали на шаге 1) в файл сертификата Java, который будет находиться в папке безопасности в Java.

Это решит проблему рукопожатия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...