iPhone에서 임베디드 사파리 브라우저의 사용자 에이전트를 스푸핑 하시겠습니까?
-
11-09-2019 - |
문제
iPhone의 Safari에서 사용자 에이전트를 스푸핑하는 방법이 있습니까?
예를 들어, 내장 된 Safari 브라우저가 포함 된 iPhone에 응용 프로그램을 만들지만이 브라우저에서 사용자가 방문하는 모든 웹 사이트는 iPhone에서 Safari에 있다는 것을 알지 못할 것입니다. PC 또는 IE/Firefox.
감사
해결책
예, 당신이 이것을 바꿀 수 있다고 생각합니다. 작동하기 위해서는 약간의 작업이 필요합니다.
모든 요청을 수동으로 관리해야합니다. 자신의 데이터 요청을 작성함으로써. 이 데이터 요청에서는 기본 헤더를 무시하는 사용자 에이전트에 대한 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];
앱에 Safari 웹 브라우저를 포함 시키면 대의원 방법을 구독 할 수 있습니다. 그들 중 하나는 Safari가 URL을로드하고 싶다고 응용 프로그램에 알릴 것입니다. 이곳은이로드를 잡고 데이터를 자체적으로 얻습니다.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
이제 데이터로드를 수행하기 위해 코드를 여기에 넣습니다.
데이터가로드되면 데이터 문자열을 WebView로 다시 제공하십시오. "BaseUrl : nil"을 설정했지만이 앱의 올바른 도메인으로 올바르게 설정해야 할 수도 있습니다.
WebView loadhtmlstring : Newstring Baseurl : NIL