2010-06-29 4 views
0

Я хотел бы получить информацию с веб-сайта. У меня уже есть HTML-код сайта. Тем не менее, я хотел бы получить больше информации заголовка на веб-сайте (например, код статуса http)NSHTTPURLRequest header

После прочтения библиотеки я обнаружил, что есть 2 метода, которые могут отображать эту информацию. Однако я могу использовать только один из методов (имеет предупреждение), другой нельзя использовать.

Ниже приведен код.

NSHTTPURLResponse *response = nil; 
NSError *error = nil; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

NSString *data=[[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding]; 

NSDictionary *responseAlllHeaderFields = [response allHeaderFields]; 
// how can I convent the NSDictionary to the NSString, I cannot use the NSLog to display the information 
NSLog(responseAlllHeaderFields); // <-- wrong 

// returns the HTTP status code for the response 
NSInteger *responseStatusCode = [response statusCode]; 
// warning: initialization makes pointer from integer without a cast 
NSLog(@"\nThe status code is %d\n", responseStatusCode); 

Кроме того, существуют ли какие-либо другие способы получения заголовка informatino?

Большое спасибо.

+0

Вы можете сделать 'NSLog (@" Поля заголовка% @ ", responseAllHeaderFields);' –

ответ

1

Благодарим за сообщение.

Однако есть некоторые предупреждения.

Ниже приведен код

NSInteger *responseStatusCode = [[response statusCode] intValue]; 
NSLog(@"\nThe status code is %d\n", responseStatusCode); 

NSInteger *responseStatusCode = [response statusCode]; 
[responseStatusCode intValue]; 
NSLog(@"\nThe status code is %d\n", responseStatusCode); 

NSInteger *responseStatusCode = [response statusCode]; 
NSLog(@"\nThe status code is %d\n", [responseStatusCode intValue]); 

У меня нет идей, почему вышеупомянутые 3 методов являются неправильными и не могут быть работой.

Спасибо.

+2

Вы все еще делаете 'responseStatusCode'' 'NSInteger *. Отбросьте указатель '' ', это проблема. –

3

Вы получаете предупреждение, потому что NSInteger является оберткой для int. Поэтому вам не нужен указатель *. Измените левую часть задания на NSInteger responseStatusCode и посмотрите, не исчезло ли предупреждение.