【问题标题】:Unable to POST data from IPhone using google account authentication无法使用 google 帐户身份验证从 iPhone 发布数据
【发布时间】:2009-01-02 07:50:58
【问题描述】:

我正在开发一个与 Google App Engine 应用程序配合使用的 iPhone 应用程序。我设法使用谷歌帐户登录并获得身份验证令牌。我还可以从 GAE 服务获取数据(我是在阅读了这里写的另一个问题后才这样做的)但是现在我需要 POST 数据,所以我需要在 POST 请求的标头中发送身份验证令牌。我尝试了几种选择,但都没有奏效。

这是我用来将该身份验证放入标头的代码:

NSString* urlStr = [NSString stringWithFormat:@"%@%@", HOST, url];
NSMutableURLRequest* urlPost = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlStr]]; 
NSString* authStr = [NSString stringWithFormat:@"GoogleLogin auth=%@", token];
[urlPost addValue:authStr forHTTPHeaderField:@"Authorization"];

但它不起作用。

有什么帮助吗?

【问题讨论】:

  • 重要提示:实际上请求会发送到服务器,但是......用户信息没有发送。我的服务器代码首先检查用户,然后执行业务逻辑,但它失败了,因为没有用户从 users.get_current_user() 方法返回。

标签: iphone google-app-engine authentication


【解决方案1】:

您需要使用[request setHTTPMethod: @"POST"][request setHTTPBody: postdata] 来正确配置POST 组件。有关详细信息,请参阅NSMutableURLRequest 文档。

【讨论】:

  • 是的,我曾使用该方法发布数据。重要提示:实际上请求会发送到服务器,但是......用户信息没有发送。我的服务器代码首先检查用户,然后执行业务逻辑,但它失败了,因为没有用户从 users.get_current_user() 方法返回
【解决方案2】:

每当我解决与 HTTP 相关的问题时,我会使用的第一个工具是 Charles HTTP Proxy。它将向您显示整个请求和响应以供仔细检查。

【讨论】:

    【解决方案3】:

    如果您针对 App Engine 应用进行身份验证,则需要获取并发送身份验证 cookie,而不是使用 GoogleLogin 身份验证。 Python SDK 中的 appengine_rpc.py 源代码演示了如何操作。

    【讨论】:

      猜你喜欢
      • 2022-10-04
      • 2021-06-06
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      相关资源
      最近更新 更多