Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Get NSURLResponse

I make http request to the web server with this:

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];

But how can I get the response from the server and parse it? Thanks a lot :)

like image 471
nyanev Avatar asked May 05 '11 10:05

nyanev


3 Answers

Since you're assigning response to returnData instance variable, convert it to string for starters just look what you get, the parsing may be done with either NSXMLParser or some JSON library depending on response format.

Here's how you'd convert the response to string:

NSString *responseBody = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
like image 70
Eimantas Avatar answered Oct 30 '22 07:10

Eimantas


I assume you mean the full NSURLResponse so that you can inspect headers and the like. In which case you need to pass in the returningResponse parameter, it is an out parameter of type (NSURLResponse **). See the docs.

like image 34
brain Avatar answered Oct 30 '22 08:10

brain


returnData is your response. If its xml then you can use NSXMLParser to parse it, if its json use the JSONFramework.

like image 22
Praveen S Avatar answered Oct 30 '22 07:10

Praveen S