2014-02-05 3 views
0

Я хочу сделать страницу прокси-сервера tornado.Создание прокси-сервера tornado

Поэтому, когда я нахожусь proxypage, я получу контент с сайта google.com.

Я сделал небольшую простую страницу прокси-сервера в php, чтобы узнать, что веб-сервер tornado не поддерживает php. Вот он т PHP код, чтобы лучше объяснить, что я ищу:

<?php 
$file = file_get_contents($_GET['requrl']); 
echo $file; 
?> 

так его ничего к экстремальным.

Я делаю ajax-запросы на сайт, который дает ответ json, никаких изображений ничего особенного просто json. но ajax не работает с междоменными запросами (политика одного происхождения). и сайт не поддерживает jsonp или cors, поэтому прокси-страница - единственный способ.

+0

Поделитесь с вами используемым кодом ajax. –

+0

https://gist.github.com/binux/3663115 Это веб-прокси. Надеюсь, это поможет вам. –

ответ

0

добавить обработчик, который выглядит примерно так:

(r"/", proxyHandler), 

и класс обработчика

class proxyHandler(RequestHandler): 
    def get(self): 
     connection = httplib.HTTPConnection("www.google.com") 
     connection.request('GET', '[uri]', '[body]', '[header]') 
     response = connection.getresponse() 

     if response.status !=200: 
      print response.status, response.reason 

     data = response.read() 
     connection.close() 

     try: 
      dataJSON = json.loads(data) 
      if DEBUG_HTTP: 
       printDoc(dataJSON, 'http response json') 

      return dataJSON 
     except Exception, e: 
      print 'data is of type, '+str(type(data))+', returning as is' 
      return data 

в connection.request() вызов, Ури парам не обязателен (можно передать ''), тело и заголовок. Это также можно сделать асинхронным способом.