Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,http请求期间无法访问网络,但卷取域可以工作_Java_Linux_Spring Boot_Redhat - Fatal编程技术网

在Java中,http请求期间无法访问网络,但卷取域可以工作

在Java中,http请求期间无法访问网络,但卷取域可以工作,java,linux,spring-boot,redhat,Java,Linux,Spring Boot,Redhat,因此,我尝试在spring应用程序上向microsoft.com发出HTTP请求 我在red hat 7 linux服务器上使用以下命令运行jar java-Dhttp.proxyHost=http://http.proxy.mycompany.com -Dhttp.proxyPort=8000\ -Dhttps.proxyHost=http://http.proxy.mycompany.com -Dhttps.proxyPort=8000\ -D-jarserver-0.0.1-SNAPSHO

因此,我尝试在spring应用程序上向microsoft.com发出HTTP请求

我在red hat 7 linux服务器上使用以下命令运行jar

java-Dhttp.proxyHost=http://http.proxy.mycompany.com -Dhttp.proxyPort=8000\
-Dhttps.proxyHost=http://http.proxy.mycompany.com -Dhttps.proxyPort=8000\
-D-jarserver-0.0.1-SNAPSHOT.jar
我在linux服务器上回显了代理值,它们是相同的

这就是我用Java发出请求的方式,print语句用于确认代理设置正确(它是):

System.out.println(System.getProperty(“http.proxyHost”);
System.out.println(System.getProperty(“https.proxyHost”);
System.out.println(System.getProperty(“http.proxyPort”);
System.out.println(System.getProperty(“https.proxyPort”);
试一试{
URL=新URL(“https://microsoft.com");
HttpURLConnection con=(HttpURLConnection)url.openConnection();
con.setRequestMethod(“GET”);
con.connect();
System.out.println(con.getResponseMessage());
int status=con.getResponseCode();
系统输出打印项次(状态);
返回状态;
}捕获(例外e){
e、 printStackTrace();
}
返回0;
此命令显示防火墙设置

sudo firewall cmd--列出所有
公共(主动)
目标:默认值
icmp块反转:否
接口:eth0
资料来源:
服务:ssh bigfix
端口:80/tcp 8080/tcp 8080/udp 8443/tcp 443/tcp 8000/tcp
协议:
化装舞会:没有
转发端口:
源端口:
icmp块:目标无法访问回显回复参数问题重定向
已超过路由器播发路由器请求源终止时间
丰富的规则:
错误为
java.net.SocketException:无法访问网络

有人知道如何解决我的服务器出现的问题吗?

可以从运行wireshark或tcpdump开始,查看jar发出的实际请求。如果您可以从shell成功地卷曲域,那么与您的代理设置有关的事情就是更改在jar中发出请求的方式。我已经安装了tcpdump,您是否可以使用命令重新发送?当我执行tcpdump-I eth0 port 8000并卷曲域时,它看起来不像任何对meSo有意义的信息,我的应用程序发出的Java请求似乎是通过使用sudo tcpdump-s 0-A-vv'tcp[(tcp[12:1]&0xf0)>>2):4]=0x47455420'找到的,然而,卷曲似乎不会触发它?@CaitLANJenner我很感谢你的帮助,这是一个很好的过滤器。老实说,我不确定它在做什么,但是你的卷曲应该100%对tcpdump可见,所以我猜它正在被过滤掉。也许是更通用的,比如tcpdump端口443,或者您感兴趣的任何端口。基于您的问题,我认为curl使用的端口与您的java应用程序不同。