2011-12-13 4 views
6

헤더 필드가없는 요청을 만들려면 어떻게해야합니까? 요청은 헤더 필드에 신경 쓰지 않고 처음부터 내 자신의 서버 구현에 전송됩니다. 요청에는 기껏해야 게시물 본문 만 포함됩니다. 내가 논리적 인 무언가를 놓친다면 알려줘.NSMutableURLRequest에서 헤더를 제거하는 방법은 무엇입니까?

제발 ASIHTTPRequest에 대해 말하지 마십시오. 고맙습니다.

+0

답변을 찾으셨습니까? 모든 머리글을 제거하려고하는데 여기의 응답이 오늘 작동하지 않는 것 같습니다 – Jan

답변

1
  1. 왜 서버 구현을 제어하더라도 무시하지 않으시겠습니까?

  2. [request setAllHTTPHeaderFields:[NSDictionary dictionary]]이 작동합니까?

  3. # 2가 작동하지 않으면 항상 allHTTPHeaderFields 메서드에서 빈 사전을 반환하는 하위 클래스를 만들고 valueForHTTPHeaderField: 메서드에서 nil 메서드를 반환합니다. 그러나 NSURLConnection은 요청 사본을 만들 수 있으므로 copyWithZone:도 무시해야 할 수 있습니다.

+0

# 1이 구현을 위해 모든 바이트가 문제를 저장했습니다. –

+0

# 2는 내부 사전을 재정의하지 않으므로 작동하지 않습니다. 열쇠를 무시하는 것입니다. 하위 클래스를 살펴보고 도움이되는지 알려줄 것입니다. –

9

나는 NSMutableURLRequest에 특정 헤더를 제거하고 싶어, 난 그냥 것으로 나타났습니다 전화의 setValue : forHTTPHeaderField : nil의 값이 실제로 제거와 함께.

Apple에 의해 문서화 된 것은 아니지만 상당히 논리적 인 것으로 보입니다.

+4

Google에서이 페이지를 찾은 사용자를 위해 - 더 이상 작동하지 않습니다 (10.8 SDK 사용). 이 값을 nil로 설정하면 사용자 에이전트가 전혀 변경되지 않습니다. – wecing

+0

사용자 정의 헤더가있는 iOS 6.1 SDK에서 작동합니다 (사용자 에이전트를 테스트하지 않았습니다). –

0

나는 헤더 필드의 일부에 사용

[request addValue:nil forHTTPHeaderField:@"User-Agent"]; 

실제로 헤더 필드를 제거하지 않고 오히려 전무로 헤더 값을 설정 ("사용자 에이전트는"그 중 하나) 발견 그것을 기본값으로 설정합니다!

실제로 내용을 제거하려면

, 그것은 나를 위해 충분히 설정을
[request addValue:@"" forHTTPHeaderField:@"User-Agent"]; 

만 청소 대신 빈 문자열을 추가 한 코드

[request addValue:@"" forHTTPHeaderField:@"User-Agent"]; 
1

에 빈 문자열 값입니다 사용자 에이전트. 대신 setValue를 사용하여 고정 :

[request setValue:@"" forHTTPHeaderField:@"User-Agent"]; 
+0

정답임을주의하십시오. addValue는 쉼표로 구분 된 이전 값에 새 값을 추가합니다. setValue는 이전 값을 대체합니다. –

관련 문제