# File lib/webmock/http_lib_adapters/net_http.rb, line 66
        def request_with_webmock(request, body = nil, &block)
          request_signature = WebMock::NetHTTPUtility.request_signature_from_request(self, request, body)

          WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)

          if WebMock::StubRegistry.instance.registered_request?(request_signature)
            @socket = Net::HTTP.socket_type.new
            webmock_response = WebMock::StubRegistry.instance.response_for_request(request_signature)
            WebMock::CallbackRegistry.invoke_callbacks(
              {:lib => :net_http}, request_signature, webmock_response)
            build_net_http_response(webmock_response, &block)
          elsif WebMock.net_connect_allowed?(request_signature.uri)
            check_right_http_connection
            after_request = lambda do |response|
              if WebMock::CallbackRegistry.any_callbacks?
                webmock_response = build_webmock_response(response)
                WebMock::CallbackRegistry.invoke_callbacks(
                  {:lib => :net_http, :real_request => true}, request_signature, webmock_response)
              end
              response.extend Net::WebMockHTTPResponse
              block.call response if block
              response
            end
            response = if (started? && !WebMock::Config.instance.net_http_connect_on_start) || !started?
              @started = false #otherwise start_with_connect wouldn't execute and connect
              start_with_connect {
                response = request_without_webmock(request, nil)
                after_request.call(response)
              }
            else
              response = request_without_webmock(request, nil)
              after_request.call(response)
            end
          else
            raise WebMock::NetConnectNotAllowedError.new(request_signature)
          end
        end