Java 对本地 Apache 服务器的 http 请求 - UnknownHostException

Java http request to local apache server - UnknownHostException

我是 运行 一个 apache 本地服务器,在我的 windows 上有 xampp。 我正在尝试使用一些 Http 请求测试我的 php 后端。

当我尝试连接我的 Java 程序时收到 java.net.UnknownHostException。 我可以交换并下载 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

我很抱歉格式化,我不能做得更好...... 在编辑中它的格式更好

你能帮帮我吗?

更新:
当我使用 url "https://Jobads43.wpm" 我得到一个 javax.net.ssl.SSLHandshakeException
当我使用 url "http://Jobads43.wpm" 时它的工作。
但是我需要使用 https 协议来安全地发送我的数据。怎么办?

Stel 1:Create 使用 java 密钥工具的证书。 Step2:配置apache访问https而不是http。为此,请遵循以下 link、

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

第 3 步:在 java 证书文件中导入相同的证书(您在第 1 步中创建的),该文件将位于 java 的安全文件夹中。

这将解决握手问题