当前位置: 首页 > 知识库问答 >
问题:

如何防止从HttpsURLConnection调用CONNECT方法

容远
2023-03-14

我有一个Android客户端向服务器发出HTTPS请求。防火墙日志包含不需要的连接请求方法的条目。

何时发送 CONNECT 请求,如何防止其发送?我只期望收到 GET 请求。我的理解是,对 openConnection() 的调用实际上并没有发出请求,并且 GET 请求将继续调用以获得响应消息()。

如何禁止 http 客户端尝试建立代理隧道?

以下是我发送连接和拨打电话的方式:

URL url = new URL("https://some.server.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(REAT_TIMEOUT);
connection.setRequestProperty(ACCEPT_CHARSET, UTF8_CHARSET);
connection.setRequestProperty(CONTENT_TYPE_HEADER, contentType);
setCustomRequestProperties(connection);
connection.setRequestMethod("GET");

//create response
connection.getResponseMessage();
connection.getResponseCode();
connection.getContentType();
connection.getContent();

编辑:

这是我试图阻止的防火墙日志条目:

CONNECT someURL.domain.com:443 HTTP/1.1
Host: someURL.domain.com
User-Agent: CustomUserAgent;1.0.0(Android 4.3;Nexus 4;T-Mobile)
Proxy-Connection: Keep-Alive
X-SSL-Secure: true
X-CS-Source-IP: 10.3.3.3
X-Forwarded-For: 10.3.3.3

我以为这是代理相关的,因为“Proxy-Connection”标头。

共有2个答案

齐高寒
2023-03-14

仅当配置了 HTTP 代理时,才会发生这种情况。您可能已经设置了系统属性 http.proxyHosthttp.proxyPort,或者Android有另一种配置方式。

陈富
2023-03-14

URLConnection的默认设置是汇集TCP(套接字)连接。“Proxy-Connection”标头似乎具有误导性,因为当真正打算使用“Connection”时,该标头可能会被盗用。

当我设置系统属性时

System.setProperty("http.keepAlive", "false");

为了禁用连接池,CONNECT方法请求条目消失了。

由于需要为每个请求创建套接字,因此性能会受到轻微影响,但应用程序不会发出大量请求,因此这是可以接受的。

 类似资料:
  • 问题内容: 我几乎可以肯定这是不可能的,但是值得一试。 我正在为某个工具编写命令行界面。我说的是一个调用另一个Java应用程序的Java应用程序。该工具在执行后调用,从而终止了我自己的执行环境。我不要 有什么方法可以忽略来电吗? 问题答案: 是的,使用SecurityManager可以实现。尝试以下 在您的班级中,使用以下调用:

  • 本文向大家介绍js防止页面被iframe调用的方法,包括了js防止页面被iframe调用的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js防止页面被iframe调用的方法。分享给大家供大家参考。具体实现方法如下: 一、问题描述: 有时候我们发会现自己的网站页面被别人调用并且一模一样,这个其实就是简单的iframe调用了,下面我来给大家介绍js防止页面iframe调用的方法总结吧,有

  • 我使用的是spring-data-rest,我有一个MongoRepository如下所示: 我希望允许GET方法,但禁用PUT、POST、PATCH和DELETE(只读web服务)。

  • 问题内容: 我有一个程序,该程序创建一个窗口,其中根据复选框显示一条消息。 显示消息而不显示消息时,如何使窗口大小恒定? 问题答案: 此代码使窗口具有用户无法更改窗口尺寸的条件,并且还禁用了最大化按钮。 在程序中,您可以使用@Carpetsmoker的答案或通过以下方式更改窗口尺寸: 将其实现到代码中应该很容易。:)

  • 我用的是JavaFX。 当某个文件没有加载时,我希望阶段关闭,该实例中的代码停止执行。

  • 我有一个页面,有一个子组件用于浏览按钮,在父组件上,通过回调我用浏览文件设置状态。