【问题标题】:How to Get NSURLResponse如何获取 NSURLResponse
【发布时间】:2011-05-05 10:29:43
【问题描述】:

我用这个向网络服务器发出 http 请求:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"http://server.com"]]; 
[request setHTTPMethod: @"POST"];
[request setHTTPBody: myRequestData];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil];

但是我怎样才能从服务器获取响应并对其进行解析呢?非常感谢:)

【问题讨论】:

    标签: iphone ios nsurlrequest


    【解决方案1】:

    由于您将响应分配给 returnData 实例变量,因此请将其转换为字符串,以便初学者只需看看您得到了什么,解析可以使用 NSXMLParser 或某些 JSON 库完成,具体取决于响应格式。

    以下是将响应转换为字符串的方法:

    NSString *responseBody = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    

    【讨论】:

    • 我可以以纯文本形式返回响应吗?示例:真/假?
    • 返回什么其实并不重要。
    【解决方案2】:

    我假设您的意思是完整的 NSURLResponse 以便您可以检查标头等。这种情况下需要传入returningResponse参数,它是一个类型为(NSURLResponse **)的out参数。请参阅docs

    【讨论】:

    • 我认为他的意思是服务器返回的原始文本。文档没有解释 NSURLResponse 和结果之间的区别,也没有说明如何从 NSURLResponse 获取响应正文。
    【解决方案3】:

    returnData 是您的回复。如果是xml,那么你可以使用NSXMLParser来解析它,如果它的json使用JSONFramework。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-14
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      相关资源
      最近更新 更多