使用flask和requests實(shí)現(xiàn)http代理服務(wù)器

代碼:

# -*- coding: utf-8 -*-
from contextlib import closing
import requests
from flask import Flask, request, Response

app = Flask(__name__)


@app.before_request
def before_request():
    url = request.url
    method = request.method
    data = request.data or request.form or None
    headers = dict()
    for name, value in request.headers:
        if not value or name == 'Cache-Control':
            continue
        headers[name] = value

    with closing(
        requests.request(method, url, headers=headers, data=data, stream=True)
    ) as r:
        resp_headers = []
        for name, value in r.headers.items():
            if name.lower() in ('content-length', 'connection',
                                'content-encoding'):
                continue
            resp_headers.append((name, value))
        return Response(r, status=r.status_code, headers=resp_headers)

app.run(port=8007, debug=True)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 實(shí)際環(huán)境 系統(tǒng)環(huán)境 macOS Sierra(10.12.5) Apache Apache/2.4.25 (Uni...
    boborz閱讀 19,364評(píng)論 1 23
  • 昨天很晚才到達(dá)的青島,第一次帶孩子坐飛機(jī),還是挺坎坷的。先是因?yàn)樘鞖庠颍跈C(jī)場(chǎng)延誤三個(gè)多小時(shí),小家伙因?yàn)榈谝淮蔚?..
    D055小倩閱讀 200評(píng)論 0 0
  • 致自己: 2016年,辛苦了整整一年,該好好地謝謝自己。 謝謝自己,面對(duì)壓力的時(shí)候,能堅(jiān)持下來(lái)。 謝謝自己,受到傷...
    玲瓏煦暖的陽(yáng)光閱讀 325評(píng)論 0 0
  • 原文地址:http://www.cnblogs.com/powertoolsteam/p/MVC_knowledg...
    寒劍飄零閱讀 8,704評(píng)論 5 170
  • 自以為那樣就會(huì)很爽很痛快的方式在別人看來(lái)不過就是小孩子的不成熟脾性和愚蠢的方式罷了,何必以卵擊石呢!
    感動(dòng)在暹羅閱讀 198評(píng)論 0 0

友情鏈接更多精彩內(nèi)容