2

NSMutableURLRequest 및 NSMutableURLConnection과 함께 http 헤더없이 요청을 내 서버에 보내야합니다. 헤더 [request setValue:@"" forHTTPHeaderField:@"User-Agent"];의 내용을 제거했지만 모든 헤더를 삭제해야합니다. 이제 :NSMutableURLRequest에서 HTTP 헤더 제거

GET/HTTP/1.1 
Host: 127.0.0.1:5555 
Accept: */* 
Accept-Language: en-us 
Connection: keep-alive 
Accept-Encoding: gzip, deflate 
User-Agent: 

필요 :

Custom text like "Hello" 

코드 :

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
+0

왜? 몇 가지 헤더가 내장되어있어 당신이 할 수 있을지 확신하지 못합니다. – Wain

+0

@Wain, 이것에 대해 확실합니까? 나는 클라이언트와 서버 사이의 명확한 대화가 필요하다. – Vladislav

+0

귀하의 서버가 있습니까? 서버가 사용자 에이전트에 신경을 쓰지 않아도 ... – Wain

답변

0

당신은 몇 가지 기본 헤더 필드가있을 수 있습니다로 헤더를 삭제하려는 이유를 난 정말 모르겠어요.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:self.URL]; 
for (NSString *key in [request.allHTTPHeaderFields allKeys]) { 
    [request setValue:nil forHTTPHeaderField:key]; 
} 
+0

아니요, 작동하지 않습니다. – Vladislav

0

이 시도 널 (null)로 전송 생각 사용할 수있는 것 같아요 전송되기 전에 요청을 복사하고 수정할 수있는 기회 :

- (NSURLRequest *)connection: (NSURLConnection *)inConnection 
      willSendRequest: (NSURLRequest *)inRequest 
      redirectResponse: (NSURLResponse *)inRedirectResponse; 
{ 
    if (inRequest) { 
    NSMutableURLRequest *modifiedRequest = [inRequest mutableCopy]; 
    [modifiedRequest setValue:nil forHTTPHeaderField:@"User-Agent"]; 
    // or whatever code you need to nil out unwanted header fields 
    return modifiedRequest; 
    } else { 
    return nil; 
    } 
} 

설명 on은이 리디렉션의 경우에만 호출되는 것처럼 보이지만 모든 요청이 발행되기 전에 실제로 호출됩니다 (macOS 10.12까지). 사실, 리디렉션의 경우 원래 URL을 사용하여 한 번, 리디렉션의 대상을 사용하여 한 번 두 번 호출됩니다. 내 실험에서

, User-Agent, Accept-Encoding, 또는 Accept-Language 이전 NSURLConnectioninitWithRequest 전화에 제거 할 수 없습니다.

+0

너무 작동하지 않습니다. – Vladislav

0

을 당신이 NSURLConnectionDataDelegate을 구현 한 가정, 당신이 :하지만 난 당신이

NSURLConnection *connection; 
NSURL* url=[NSURL URLWithString:@"your url"]; 

NSMutableURLRequest *request = [NSMutableURLRequest 
requestWithURL:[url standardizedURL]]; 

//set http method GET OR POST OR WHATEVER 
[request setHTTPMethod:@"GET"]; 
connection=[NSURLConnection connectionWithRequest:request delegate:self]; 

나는 그것이 작동하고 헤더