如何在java程序中进行代理配置

如何在java程序中进行代理配置,java,networking,Java,Networking,我有一台通过代理服务器连接到互联网的电脑。我可以浏览google.com和所有其他网站。但是我无法ping google.com、smtp.gmail.com或任何其他网站。我试图通过java程序发送一些自动邮件,但每次都无法连接到smtp.gmail.com。我的java程序中是否需要进行任何代理配置…?是。如果您在防火墙后面,则需要配置代理。为此,请使用此代码段 Properties systemProperties = System.getProperties(); systemPrope

我有一台通过代理服务器连接到互联网的电脑。我可以浏览google.com和所有其他网站。但是我无法ping google.com、smtp.gmail.com或任何其他网站。我试图通过java程序发送一些自动邮件,但每次都无法连接到smtp.gmail.com。我的java程序中是否需要进行任何代理配置…?

是。如果您在防火墙后面,则需要配置代理。为此,请使用此代码段

Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost", "a.b.c.d");//replace a.b.c.d with your proxy IP
systemProperties.setProperty("http.proxyPort", "80");
或者,您可能希望覆盖DefaultAuthenticator。如果您的代理需要身份验证,您可能也需要这样做

Authenticator.setDefault(new Authenticator() {
   protected PasswordAuthentication getPasswordAuthentication() {
   return new PasswordAuthentication("user","password".toCharArray());
   }
});

是的。如果您位于防火墙后面,则需要配置代理。为此,请使用此代码段

Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost", "a.b.c.d");//replace a.b.c.d with your proxy IP
systemProperties.setProperty("http.proxyPort", "80");
或者,您可能希望覆盖DefaultAuthenticator。如果您的代理需要身份验证,您可能也需要这样做

Authenticator.setDefault(new Authenticator() {
   protected PasswordAuthentication getPasswordAuthentication() {
   return new PasswordAuthentication("user","password".toCharArray());
   }
});

简短的回答是:在调用Java时使用
-D
或使用
属性设置属性
http.proxyHost
http.proxyPort


有关详细信息,请查看简短的回答是:在调用Java时使用
-D
或使用
属性设置属性
http.proxyHost
http.proxyPort


有关详细信息,请查看

听起来您可能正在使用代理服务器进行HTTP连接,如浏览google.com,但网络连接有限。您必须打开防火墙才能连接到smtp.gmail.com的端口25(如果使用SSL,则为465),才能从该计算机发送邮件。听起来您可能正在使用代理服务器进行HTTP连接,例如浏览google.com,但网络连接有限。您必须打开防火墙才能连接到smtp.gmail.com的端口25(如果使用SSL,则为465),才能从该计算机发送邮件消息。