【问题标题】:REST API Works in Browser, But Not ClientREST API 可在浏览器中使用,但不能在客户端中使用
【发布时间】:2012-05-26 22:23:05
【问题描述】:

我正在开发一个 REST API,并且发现了一个非常有趣的问题。

当我在网络浏览器(在我的情况下为 Chrome)中访问资源时,一切正常。但是,当我使用 REST 客户端(Google Chrome 插件、基于 Web 的客户端和 Java 小程序)访问资源时,没有任何变量传递给 API。 GET 和 POST 方法都会发生这种情况。

我完全不知道为什么会这样,而且在将方法投入生产之前测试这些方法非常困难(尤其是使用 POST 方法)。

请帮忙!

【问题讨论】:

  • Wnat 到底出了什么问题?你得到什么错误代码?此外,您的个人资料中有汽车。你一定是个变形金刚。
  • 发布您的休息方法,然后您可以获得更接近的解决方案
  • 我是一个转换器(名字叫凯迪拉克),例如,我有一个用于 GET 方法的“echo”函数,它所做的只是吐出传递给它的变量。在浏览器中,它可以正常工作。但是,在客户端中,它只是返回 ,仅此而已。

标签: api rest post methods get


【解决方案1】:

乍一看,这可能是两件事:

  1. 您没有通过客户端正确传递 API 参数,或者 小程序
  2. 身份验证或 cookie 管理问题。 API 是否需要任何类型的授权?
  3. 您是否忘记设置必要的 HTTP 标头?

【讨论】:

  • 我正在输入正确的 X-API-KEY(我们正在使用的)和所有变量,就像我在浏览器中使用 ?key=value 表示法一样,但在客户端中。
  • 有趣 - 通常我认为 x-api-key 是您通过 HTTP 标头提交的东西。见:docs.oracle.com/javase/6/docs/api/java/net/…
【解决方案2】:

您是否也可以控制 API 还是第三方 API?如果是这样,参数是完全到达还是空着到达?错误代码是什么? - 403 未授权(如果密钥未通过,这将是有意义的)或由于缺少参数而导致的其他问题。

尝试在命令行中使用 CURL 执行此操作的中间步骤 - 这将为您提供有关返回内容的更多详细信息。

【讨论】:

    猜你喜欢
    • 2016-10-13
    • 2014-03-14
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2019-05-10
    • 2021-04-23
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多