2016-11-19 4 views
1

Я пытаюсь создать прокси-сервер cors через колбу с нуля. Вот мой кодФлакон, передающий другой URL-адрес через переменную URL

@app.route('/api/v1/cors/url=<name>&method=<method>', methods=['GET']) 
def api_cors(name, method): 
    if method == 'http' or method == 'https': 
     r = request.urlopen(method+"://"+name) 
     return r.read() 
    else: 
     return "method not set!" 

Это работает хорошо до сих пор, но у меня есть одна проблема, когда я прохожу «URL = google.com & метод = HTTPS» он работает нормально, но когда я прохожу что-то вроде «URL = Google .com/images/image.jpg & method = https "the"/"будет рассматриваться как новый каталог

Есть ли все-таки уклониться от этого в колбе?

+0

вы можете попробовать держать его между кавычками, как «URL =„google.com/изображения/image.jpg“и метод = HTTPS» – SunilT

+0

@SunilT, как бы я идти об этом, что, Не было бы обойти все равно –

+0

Пожалуйста, обратитесь к http://stackoverflow.com/questions/2992231/slashes-in-url-variables .. кажется, есть несколько решений для решения этой проблемы. – SunilT

ответ

2

Если вы хотите использовать ту же схему URL, которую используете сейчас, измените свой декоратор маршрутизации на это, и он будет работать.

@app.route('/api/v1/cors/url=<path:name>&method=<method>', methods=['GET']) 
3

Не пытайтесь передать значение как часть самого маршрута. Передайте его как параметр запроса.

@app.route('/api/v1/cors/') 
def api_cors(): 
    url = request.args.get('url') 

и назовите его "/api/v1/cors/?url=https://google.com/images/image.jpg".

+0

эй, я получаю ошибку атрибута при выполнении того же действия, что и вы. –

+0

AttributeError: объект 'module' не имеет атрибута 'args' –

+0

Где? Показать полную ошибку. –

 Смежные вопросы

  • Нет связанных вопросов^_^