我遵循基于我不想使用的服务的教程(Drone Deploy): https://dronedeploy.gitbooks.io/dronedeploy-apps/content/server_example.html 我2天前在他们的论坛上为这个问题做了一个主题。(和Github上的回购)
但也许有人可以帮助我。
我遇到了Heroku服务器应用程序的问题。 我使用Python和Tornado模块。
事实是我遇到了404错误 我的终端(在测试它的时候)问我: "警告:tornado.access:404 GET /(:: 1)0.75ms"
所以" GET"功能不起作用,也许是因为HTTP访问控制(CORS)我尝试了很多修复,但都没有用。
也许我做错了什么,或者忘记了什么。
更新: 最近,Drone部署的人员说我的龙卷风路线并没有被heroku接收。 在完成了许多教程并阅读了Tornado文档后,我不知道如何路由它。
服务器的网址:https://stardrone-server.herokuapp.com/
这个代码:
import os
import requests
import tornado.ioloop
import tornado.web
GEOCODE_FMT = 'https://maps.googleapis.com/maps/api/geocode/json?address={address}&key={key}'
class GeocodeHandler(tornado.web.RequestHandler):
"""Proxy a call to the Google Maps geocode API"""
def set_default_headers(self):
# allow cross-origin requests to be made from your app on DroneDeploy to your web server
self.set_header("Access-Control-Allow-Origin", "https://www.dronedeploy.com")
self.set_header("Access-Control-Allow-Headers", "x-requested-with")
# add more allowed methods when adding more handlers (POST, PUT, etc.)
self.set_header("Access-Control-Allow-Methods", "GET, OPTIONS")
def get(self):
api_key = os.environ.get("MyApiKey")
address = self.get_query_argument("address")
url = GEOCODE_FMT.format(address=address, key=api_key)
# fetch results of the geocode from Google
response = requests.get(url)
# send the results back to the client
self.write(response.content)
def options(self):
# no body
self.set_status(204)
self.finish()
def main():
application = tornado.web.Application([
(r"/geocode/", GeocodeHandler)
])
port = int(os.environ.get("PORT", 5000))
application.listen(port)
tornado.ioloop.IOLoop.current().start()
if __name__ == "__main__":
main()
也许我错过了什么。 任何帮助,建议表示赞赏
谢谢
约翰