【问题标题】:Retrieve URL from which an API Request is made in Django检索在 Django 中发出 API 请求的 URL
【发布时间】:2013-05-03 22:34:40
【问题描述】:

我有一个问题:我正在 django 中开发一个必须响应远程请求的 API 视图。

有没有办法知道 API 调用从哪个 url 开始?

谢谢

【问题讨论】:

  • 你的意思是用户的IP?或者你在看还是整个网站的网址?

标签: django api


【解决方案1】:

是的,在 HTTP 标头中,会有一个 Referer 行,如果客户端选择发送它,它是客户端来自的 URI。有些人会选择不发送,而在这种情况下,您无能为力。

有几篇关于解析 HTTP 标头的文章,你可以使用其中的一篇并借用他们的方法。

这是其中有几个很好例子的帖子之一:Parse raw HTTP Headers

你只需要让 Django 获取 headers 以便你可以解析它们,这并不难,我相信标准库中有用于在 web 应用程序中获取 headers 的函数。

【讨论】:

  • 是的,关键是在某些请求中会出现此标头,但在其他请求中则不会。那么解决方案是强制发送吗?我怎样才能让 http_referer 发送?非常感谢
  • 是的,如果该标题不存在,则没有很好的方法可以确定呼叫来自何处,除非它们来自您网站上的某个地方,您可以查看该网站记录。如果他们来自其他地方或直接将调用输入到程序中,或者不发送标头,那么您就无法知道他们来自哪里。
  • 我怎样才能获得正确的 http_referer 值并发送它?在我的情况下,api调用是在视图中使用 urllib
猜你喜欢
  • 2019-11-20
  • 2020-01-20
  • 2011-11-27
  • 2015-12-14
  • 2020-03-04
  • 2017-10-30
  • 2021-05-02
  • 2019-02-25
  • 1970-01-01
相关资源
最近更新 更多