Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Browsermob proxy 浏览器群拦截具有相同url的多个请求,但希望发回不同的响应_Browsermob Proxy_Browsermob - Fatal编程技术网

Browsermob proxy 浏览器群拦截具有相同url的多个请求,但希望发回不同的响应

Browsermob proxy 浏览器群拦截具有相同url的多个请求,但希望发回不同的响应,browsermob-proxy,browsermob,Browsermob Proxy,Browsermob,我想在我的应用程序中拦截请求,我遇到的一个场景是——由于应用程序的性质,一些服务具有相同的请求端点和不同的负载,但我想在不同的情况下发回不同的响应。是否有办法将订单分配给截获的请求,并按照顺序发送特定的响应?或者任何其他机制告诉浏览器暴民这个例子-对于这个url和这个负载发送这个响应?因为如果它是相同的url,那么响应将被最后一个截获的请求覆盖 我已经尝试了url和内容包含的请求。检查下面代码中的if条件 proxy.addRequestFilter((request, conte

我想在我的应用程序中拦截请求,我遇到的一个场景是——由于应用程序的性质,一些服务具有相同的请求端点和不同的负载,但我想在不同的情况下发回不同的响应。是否有办法将订单分配给截获的请求,并按照顺序发送特定的响应?或者任何其他机制告诉浏览器暴民这个例子-对于这个url和这个负载发送这个响应?因为如果它是相同的url,那么响应将被最后一个截获的请求覆盖

我已经尝试了url和内容包含的请求。检查下面代码中的if条件


      proxy.addRequestFilter((request, contents, messageInfo) -> {
            String content = null;

            try {
                content = URLDecoder.decode(contents.getTextContents(), "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            if (request.getUri().contains(endpoint) && (content != null && content.contains(contentContains))) {

                //Use DefaultFullHttpResponse for posting the json body
                final HttpResponse httpResponse = new DefaultFullHttpResponse(request.getProtocolVersion(),
                        statusCode);
                //Close the connection so it doesn't pass through
                httpResponse.headers().add("CONNECTION", "Close");
                //Specify the content-type and charset
                httpResponse.headers().add("Content-Type", "application/json; charset=UTF-8");
                //replace the body
                HttpObjectUtil.replaceTextHttpEntityBody((FullHttpMessage) httpResponse, response);

                return httpResponse;
            }

            return null;
        });
实际-如果两个请求具有相同的端点,则最后一个截获的请求将覆盖我要发送回的响应

预期-Bowsermob能够为具有相同端点的请求注册不同响应并发送回不同响应的某种机制