【问题标题】:Hapijs headers not valid jsonHapijs 标头无效的 json
【发布时间】:2017-04-26 17:11:43
【问题描述】:

由于某种原因,我使用 request.headers 获得的请求标头不是有效的 JSON,这意味着我似乎无法解析它。我得到的标题如下:

{ host: 'localhost:3000',
  'content-type': 'application/json',
  origin: 'http://localhost:3000',
  'accept-encoding': 'gzip, deflate',
  cookie: '__utma=111872281.423941909.1445035542.1451387074.1451408560.20; __utmc=111872281; __utmz=111872281.1445035542.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __jlptid4483=5633968d7051f52c388b457d; _ga=GA1.1.423941909.1445035542; ci_session=a%3A4%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%2214408339bad21514d3a8deab593087ef%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A9%3A%22127.0.0.1%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A116%3A%22Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_10_5%29+AppleWebKit%2F601.3.9+%28KHTML%2C+like+Gecko%29+Version%2F9.0.2+Safari%2F601.3.9%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1451413507%3B%7De88c3d74bb7153f8ddfb600814f1f249; csrftoken=Cw6hhwpl4RWtvXqRfqmfeok6cE33cvT4; sessionid=8gvksyocsx4ffcsp22ucgkxf84l7y4tg; spu_box_8075=true; wp-settings-time-1=1446207423',
  connection: 'keep-alive',
  accept: 'application/json',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9',
  referer: 'http://localhost:3000/documentation',
  'content-length': '67',
  'accept-language': 'en-us' }

这基本上意味着我无法提取我想要获取的用户代理。

如果有人可以帮助我解析这个或找到更简单的方法来获取用户代理。

【问题讨论】:

    标签: json http-headers hapijs


    【解决方案1】:

    hapi 中的请求标头作为 JS 对象提供,而不是 JSON。您无需担心标头字段的编码/解码,hapi 为您提供了保障。

    hapi 允许您使用request.headers 访问路由处理程序中的请求标头。此外,您可以访问这样的字段

    • request.headers.host
    • request.headers['user-agent'](带有- 破折号的标题需要引号)

    如果您需要更多详细信息,可以在how to access request headers in hapi 上的本教程中阅读更多信息。本指南还包含一个描述 hapi 标头的视频。

    希望有帮助!

    【讨论】:

    • 似乎您需要使用全部小写,即使浏览器的调试器以大写报告请求也是如此。 request.headers['User-Agent'.toLowerCase()]
    • 是的,hapi 提供小写的请求标头
    【解决方案2】:

    它是一个 JavaScript 对象,你可以这样访问用户代理:

    request.headers['user-agent']
    

    【讨论】:

      猜你喜欢
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 2018-06-23
      • 2015-07-25
      • 2021-02-24
      • 2021-01-20
      • 1970-01-01
      相关资源
      最近更新 更多