2014-02-11 1 views
0

POST (또는 GET)와 함께 2 개의 헤더를 보내는 iPhone http 클라이언트를 만들고 있습니다.

내 서버는 7 개의 헤더를받습니다.
네트워크 라이브러리에 5 개의 헤더가 추가되었습니다.

ios 프로그램에서 추가 된 헤더에 액세스하는 방법이 있습니까?
또는
이 기능을 억제하고 요청에 헤더를 추가하지 않을 방법이 있습니까?

외부 도구를 사용하여 이미이 작업을 수행 할 수 있습니다.
나는 발송되는 모든 헤더를 기록하기 위해 ios 프로그램 만 필요합니다.NSMutableURLRequest, 내 iPhone 프로그램 내에서 보낸 모든 요청 헤더에 액세스 할 수 없습니다.

all headers { 
    Connection = "keep-alive"; 
    "User-Agent" = "BlahAgent"; 
} 



에 : 엑스 코드 콘솔에

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"POST"]; 

[request setValue:@"BlahAgent" forHTTPHeaderField:@"User-Agent"]; 
[request setValue:@"keep-alive" forHTTPHeaderField:@"Connection"]; 

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

NSLog(@"all headers %@",request.allHTTPHeaderFields); 

이 인쇄 : 내 아이폰에서 요청을 보낸

코드 : 여기

모든 추악한 세부 사항입니다 수신 측 (PHP)이 실행됩니다

$allHeaders = getallheaders(); 
print_r($allHeaders) 

얻을 :

Array 
(
    [Host] => 192.168.0.15 
    [Accept-Encoding] => gzip, deflate 
    [Accept] => */* 
    [Accept-Language] => en-us 
    [Connection] => keep-alive 
    [Content-Length] => 0 
    [User-Agent] => BlahAgent 
) 



가 난 와이어 상어를하고 있어요 :

POST /php/ajax.php HTTP/1.1 
Host: 192.168.0.15 
Accept-Encoding: gzip, deflate 
Accept: */* 
Accept-Language: en-us 
Connection: keep-alive 
Content-Length: 0 
User-Agent: BlahAgent 


내가 GET과없고 헤더와 가지고 있지만 그것을 다시했다 :

[Host] => 192.168.0.15 
[Connection] => keep-alive 
[Accept-Encoding] => gzip, deflate 
[User-Agent] => Blah%20Agent/1.0 CFNetwork/672.0.8 Darwin/14.0.0 
[Accept-Language] => en-us 
[Accept] => */* 


+0

명시 적으로 명시하지 않았지만 요청을 보내는 프로그램에서 나가는 헤더를 확인해야합니다. 네트워킹 라이브러리에 의해 추가 된 요청 헤더에 대한 프 로그 램 액세스가 필요합니다. 미안하지만 분명하지 않았습니다. – godzilla

답변

0
당신은 같은 웹 디버깅 도구를 시도 할 수 있습니다 물론

: Windows에서 runninng 경우 fiddler, 또는 charles 당신은 맥이있는 경우. 이들 중 하나를 사용하여 http를 통해 전송 된 모든 연결에 대해 프록시로서 사용된다는 점을 감안할 때, 전송되는 요청의 전체 세부 사항을 조사 할 수 있습니다.

EDIT : 설정 중에 있지 않은 나머지 헤더는 트랜잭션에서 필요하기 때문에 HTTP 프로토콜에 의해 자동으로 부여됩니다.

+0

요청 헤더를 이미 외부에서 읽을 수는 있지만 요청하는 앱에서 요청 헤더를 읽을 필요가 있습니다. 텔넷 세션을했는데 필요한 유일한 헤더는 호스트였습니다. 어쨋든 입력에 감사드립니다. 나는 ios가 추가 된 나가는 헤더를 읽는 방법을 가지고 있다고 확신한다. 나는 단지 어떻게하는지 모른다. – godzilla

0

내가 원하는 것 같아 할 수 없습니다.
discussed here

당신은 설정 로컬 서버는 요청을 보내고, 그것은 전체 요청을 다시 보내
을 가지고 있지만 그 루브 Goldburg의 틱의 일종 수 있습니다.
또는
마법 엘프가 물건을 사용하지 않고도 하위 레벨 라이브러리를 사용할 수 있습니다.

관련 문제