iPhone에서 임베디드 사파리 브라우저의 사용자 에이전트를 스푸핑 하시겠습니까?

StackOverflow https://stackoverflow.com/questions/1095045

문제

iPhone의 Safari에서 사용자 에이전트를 스푸핑하는 방법이 있습니까?

예를 들어, 내장 된 Safari 브라우저가 포함 된 iPhone에 응용 프로그램을 만들지만이 브라우저에서 사용자가 방문하는 모든 웹 사이트는 iPhone에서 Safari에 있다는 것을 알지 못할 것입니다. PC 또는 IE/Firefox.

감사

도움이 되었습니까?

해결책

예, 당신이 이것을 바꿀 수 있다고 생각합니다. 작동하기 위해서는 약간의 작업이 필요합니다.

  1. 모든 요청을 수동으로 관리해야합니다. 자신의 데이터 요청을 작성함으로써. 이 데이터 요청에서는 기본 헤더를 무시하는 사용자 에이전트에 대한 HTTPHEADER를 추가 할 수 있습니다.

    nsMutableUrlRequest* urlRequest = [[[nsMutableUrlRequest alloc] initWitHurl : requestUrl] autorelease];

    [urlRequest setHTTPMethod: @"POST"];
    [urlRequest setHTTPBody: [nvpString  dataUsingEncoding:NSUTF8StringEncoding]];
    [urlRequest addValue:@"Your+User+Agent+String" forHTTPHeaderField:@"User-Agent"];
    receivedData = [[NSMutableData alloc] retain];
    [receivedData setLength:0];
    
    [NSURLConnection connectionWithRequest: urlRequest delegate: self];
    
  2. 앱에 Safari 웹 브라우저를 포함 시키면 대의원 방법을 구독 할 수 있습니다. 그들 중 하나는 Safari가 URL을로드하고 싶다고 응용 프로그램에 알릴 것입니다. 이곳은이로드를 잡고 데이터를 자체적으로 얻습니다.

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    

    이제 데이터로드를 수행하기 위해 코드를 여기에 넣습니다.

  3. 데이터가로드되면 데이터 문자열을 WebView로 다시 제공하십시오. "BaseUrl : nil"을 설정했지만이 앱의 올바른 도메인으로 올바르게 설정해야 할 수도 있습니다.

    WebView loadhtmlstring : Newstring Baseurl : NIL

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top