Java 如何在HttpServer的URL中包含tspecials(<;,";等)?

Java 如何在HttpServer的URL中包含tspecials(<;,";等)?,java,http,Java,Http,我使用internet上的一个示例实现了简单的com.sun.net.httpserver.httpserver应用程序。 除一个异常外,服务器按预期获取请求: 如果url包含tspecials:“或”,则需要在客户端使用%符号对url进行编码: 在服务器端,应该使用URI.getRawQuery()如果查询包含&characters和décode参数值,则使用URLDecode.decode.我无法修改客户端请求谢谢,为什么我使用ServerSocket时不需要这样做,并且请求实现服务器已完

我使用internet上的一个示例实现了简单的com.sun.net.httpserver.httpserver应用程序。 除一个异常外,服务器按预期获取请求:
如果url包含tspecials:“或”,则需要在客户端使用%符号对url进行编码:


在服务器端,应该使用URI.getRawQuery()如果查询包含&characters和décode参数值,则使用URLDecode.decode.

我无法修改客户端请求谢谢,为什么我使用ServerSocket时不需要这样做,并且请求实现服务器已完全按照您的示例编码,我认为问题出在HttpServerWith ServerSocket中,您必须实现http协议你自己。如果你的实现不需要url编码,那么它就不符合标准。因此,如果你想实现http,HttpServer是可以的;如果你想实现自定义协议,你需要为它提供实现。IE编码url和我的服务器应该已经获得url编码吗如果IE将uri编码为有效字符串,那么为什么HttpServer会拒绝它?非常感谢!如果您键入IE地址栏中的地址,它会拒绝,因为它是一个不正确的地址(另一方面,firework会对其进行编码)。这是一个IE问题,与服务器端的内容无关。但如果请求是由表单生成的,则会正确编码。