【问题标题】:HttpHandler fails to handle http requestsHttpHandler 无法处理 http 请求
【发布时间】:2016-10-28 04:37:24
【问题描述】:

我正在尝试使用 com.sun.net.httpServer.* 库构建 https 代理服务器。 当我如下定义服务器上下文时:

httpServer.createContext("/test", new MyHandler());

然后我从浏览器打开网址:“https://localhost:443/test”,它按预期工作,但是当以这种方式定义服务器上下文时:

httpServer.createContext("/", new MyHandler());

我注意到当我输入如下 URL 时我的处理程序没有被使用:“https://www.google.co.il/

我错过了什么?

【问题讨论】:

  • 请不要撤消我的编辑,因为它们使内容更易于阅读。
  • 您在网络浏览器中输入了https://www.google.co.il?您是否将浏览器配置为使用 HTTP 代理服务器侦听 localhost:443
  • HTTPS URL 以“https://”开头,默认使用端口 443。 (取自:en.wikipedia.org/wiki/HTTPS

标签: java server httphandler httpserver


【解决方案1】:

此行只会更改上下文路径,不会更改服务器 URL。

httpServer.createContext("/", new MyHandler());

因此,对于这种情况,您将在此 URL 处获得响应 - “https://localhost:443/”。

【讨论】:

  • 难道没有办法定义上下文,让每个请求都会触发处理程序吗?
  • @GilYitzhak 是的,我们可以定义上下文(在本例中为 /test 或 /)。但是您仍然需要提供服务器名称 (localhost) 以便客户端访问服务器。
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
相关资源
最近更新 更多