Это из сообщения в блоге Я писал некоторое время назад.используя webob и вставьте.TransparentProxy перенаправляет запрос на любой URL, указанный в запросе.Вы можете написать промежуточное программное обеспечение, чтобы сделать что-то с запросом, прежде чем он будет передан прозрачному прокси.
Затем просто установите параметры прокси-сервера в браузере на любой адрес, на котором работает ваш прокси.
в этом примере печатается запрос и ответ, для вашего случая вы хотите проверить статус ответа для 404 или 302 или чего-либо другого и отправить его в код, который вы пишете.
from webob.dec import wsgify
from paste import httpserver
from paste.proxy import TransparentProxy
def print_trip(request, response):
"""
just prints the request and response
"""
print "Request\n==========\n\n"
print str(request)
print "\n\n"
print "Response\n==========\n\n"
print str(response)
print "\n\n"
class HTTPMiddleware(object):
"""
serializes every request and response
"""
def __init__(self, app, record_func=print_trip):
self._app = app
self._record = record_func
@wsgify
def __call__(self, req):
result = req.get_response(self._app)
try:
self._record(req.copy(), result.copy())
except Exception, ex: #return response at all costs
print ex
return result
httpserver.serve(HTTPMiddleware(TransparentProxy()), "0.0.0.0", port=8088)
edit:
Вот пример промежуточного программного обеспечения, которое я написал, чтобы я мог перехватить путь и вернуть другой ответ.Я использую это для тестирования тяжелого javascript-приложения, которое жестко запрограммировано для производства, я перехватываю config.js и вывожу свой собственный, который имеет специфические настройки для юнит-теста.....
app = FileIntercept(TransparentProxy(),
file_intercept={"/js/config.js":Response("/*new settings*/")})
httpserver.serve(HTTPMiddleware(app), "0.0.0.0", port=8088)