要在使用SetHandler时保留原始POST请求的响应体,可以使用Apache的mod_proxy模块来实现。下面是一个示例的解决方案:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyPass /your-endpoint !
SetHandler custom-handler
Order allow,deny
Allow from all
ProxyPass /your-endpoint http://localhost:8080/your-endpoint
ProxyPassReverse /your-endpoint http://localhost:8080/your-endpoint
ProxyPassReverse /
RequestHeader unset Content-Length
RequestHeader set X-Original-Content-Length %{CONTENT_LENGTH}e env=CONTENT_LENGTH
RequestHeader set X-Original-Content-Type %{CONTENT_TYPE}e env=CONTENT_TYPE
在上面的配置中,将请求代理到本地的端口8080,并设置一些自定义的请求头,以保留原始的POST请求的响应体。
请注意,上述示例中的Endpoint路径(/your-endpoint)应根据你的实际需求进行调整。另外,如果端口8080不是你的目标服务的实际端口,请将它替换为正确的端口。
通过上述配置,你可以在使用SetHandler时保留原始POST请求的响应体。在代理到指定的端点时,请求头中的X-Original-Content-Length和X-Original-Content-Type将保存原始请求的长度和类型。