1

我正在创建一个使用 json web 服务的 iPhone 应用程序。我有一个 NSURLRequest 和 NSURLConnection 对象,用于从该 Web 服务加载 JSON 数据:


    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
                                    initWithURL:url 
                                    cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                    timeoutInterval:30];
    [request setHTTPMethod: @"POST"];
    //[request setHTTPShouldHandleCookies:YES];

//create connection
NSURLConnection *connection = [[NSURLConnection alloc] 
                               initWithRequest:request delegate:self];
[connection start];

我第一次执行上述代码时,使用 URL“admin.mydomain.com/param1/value1/param2/value2”,响应正确(JSON 字符串:{“Wrong API Key”})。

然后我将 url 更改为我的登台服务器:“admin.stg.mydomain.com/param1/value1/param2/value2”。该服务器为我提供了一些完全不同的输出(当我在浏览器中尝试新的 url 时,会显示正确的输出,一个与第一个 url 给我的完全不同的 json 对象),但在我的 iphone 应用程序中,我仍然得到确切的我从另一台服务器得到的相同响应。如果我尝试不存在的网址,我会收到正确的错误消息。

它似乎只是缓存了来自原始服务器的结果并为我的 stg 子域返回相同的值,以某种方式匹配两个 url(这可能吗?),但我已经清除了我能找到的所有缓存数据。我试图清理构建和构建目录,重新启动 xcode,计算机和所有内容,缓存策略设置为忽略缓存(参见代码)。重要提示:我在我的实际 iPhone 上得到了相同的行为,而不仅仅是模拟器。

有谁知道什么可能导致这种行为?我忘记了一些明显的事情吗?

我一直在看这个几个小时,非常感谢任何帮助!

4

1 回答 1

1

我已将请求方法更改为“GET”,现在我得到了预期的结果!在浏览器中检查 url 时使用了一个 get 请求,当发布它时我得到一个不同的响应,这恰好与我在开发服务器上得到的完全一样。问题解决了,只需要对后端进行一些调整以允许发布请求!

于 2012-07-14T07:50:57.220 回答