【问题标题】:How to get JSON responce to HTTP Request如何获取对 HTTP 请求的 JSON 响应
【发布时间】:2024-09-04 08:50:02
【问题描述】:

WebService 能够以 XML、纯文本和 JSON 格式给出响应。

我可以成功获得 XML 响应。 我担心的是,如何获得 JSON 格式的响应(不是 XML 或纯文本)。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
   NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    SBJsonParser *parser = [[SBJsonParser alloc] init];
    NSMutableArray *array = [parser objectWithString:responseString error:nil];

    NSString *success = [array valueForKey:@"Successful"];
    NSString *token = [array valueForKey:@"Token"];
}

上面是处理响应的代码(我确实假设为 JSon,但它是 XML)。 因此应用程序崩溃了。

以下是我得到的回应:

<AuthenticatedUser xmlns="http://schemas.datacontract.org/2004/07/XYZCOMPANY.ABC.DataContracts.Mobile" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ErrorMsg i:nil="true"/><Successful>true</Successful><Token>MHlc8yKBgghjkfPHZ2oOvabvMWA=</Token></AuthenticatedUser>

【问题讨论】:

  • 引用了它,但它给了我 XML 的响应。我想以 JSon 格式获取它。
  • 嗯,你必须给我们更多的信息,Lick 哪个网络服务?只是说某些事情确实有效,而没有说什么是;不是很容易解决。我知道一些网络服务会查看 HTTP 请求的接受标头,而其他网络服务需要一个 GET 参数来返回 JSON。
  • 您仍然需要询问构建 Web 服务的人员如何将输出设置为 JSON,因为没有一种默认方式可以做到这一点。
  • @rckoenes:感谢您的帮助 :)

标签: iphone ios json cocoa-touch nsurlrequest


【解决方案1】:

如果您没有打错端点,您可能需要像@rckoenes 所说的那样将http 接受标头设置为“application/json”。您还可以尝试使用 CURL 甚至您的 Web 浏览器访问该服务,以查看 json 服务是否正在运行。

这是它为我请求由 SOAPUI 创建的本地 JSON 服务的代码:

NSURLRequest *request = [[NSURLRequest alloc]
                        initWithURL: [NSURL URLWithString:SERVERURL]
                        cachePolicy: NSURLRequestReloadIgnoringLocalCacheData
                        timeoutInterval: 10];

NSURLConnection *connection = [[NSURLConnection alloc]
                        initWithRequest:request
                        delegate:self
                        startImmediately:YES];
if(!connection) {
        DLog(@"connection failed");
} else {
        DLog(@"Connection succeeded");

}

【讨论】:

    【解决方案2】:

    取决于 webservice 的编写方式...

    http://davidwalsh.name/web-service-php-mysql-xml-json

    【讨论】:

    • 我正在谈论的 Web 服务正在给我 XML 响应。它还提供了 JSon(与 jQuery 一起使用 phoneGap),我正在尝试制作 Native iPhone App。因此,任何可以以 JSON 格式响应请求的特定方法。
    【解决方案3】:

    在您的应用程序中导入 JSON 框架。 Refer this

    【讨论】: