Подтвердить что ты не робот

Как отправить запрос GET из моего флеш-приложения на другой сайт?

Первоначально я попытался отправить запрос ajax с моей клиентской стороны на сторонний URL-адрес, но, похоже, у браузера есть проблемы с безопасностью. Я подумал о отправке ajax на серверную сторону, оттуда отправить запрос GET третьей стороне, получить ответ и отправить его обратно на клиентскую сторону. Как я могу сделать это с флягой?

4b9b3361

Ответ 1

Установите модуль requests (гораздо приятнее, чем использование urllib2), а затем определите маршрут, который делает необходимый запрос - что-то вроде:

import requests
from flask import Flask
app = Flask(__name__)

@app.route('/some-url')
def get_data():
    return requests.get('http://example.com').content

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

Ответ 2

У флака нет такой возможности, но просто написать обработчик запроса, который делает запрос на другой сервер, используя клиентскую библиотеку HTTP, а затем вернуть этот ответ.

# third-party HTTP client library
import requests

# assume that "app" below is your flask app, and that
# "Response" is imported from flask.

@app.route("/proxy-example")
def proxy_example():
    r = requests.get("http://example.com/other-endpoint")
    return Response(
        r.text
        status=r.status_code,
        content_type=r.headers['content-type'],
    )

Однако это не приведет к такому же результату, который можно было бы ожидать от клиентского запроса. Поскольку ваш сервер не может "видеть" файлы cookie, которые клиентский браузер хранит для целевого сайта, ваш прокси-запрос будет эффективно анонимным и, следовательно, в зависимости от целевого сайта может выйти из строя или дать вам другой ответ, чем вы получите запрос этот ресурс в браузере.

Если у вас есть отношения с сторонним URL (то есть, если вы управляете им или можете работать с людьми, которые это делают), они могут предоставить доступ для междоменных запросов в браузере, используя CORS (который поддерживается только в современных браузерах) или JSON-P ( более раннее решение, предшествовавшее CORS).

Сторонний провайдер также может предоставить вам доступ к данным, которые вы хотите на конечной точке, которая предназначена для приема запросов с других серверов, и которая обеспечивает механизм аутентификации вашего приложения. Самый популярный протокол для этого - OAuth.