2013-02-27 17 views
-1

我試圖認證,擁有3個不同的服務器端點的API:使用AFOAuth1Client不同的服務器端點地址

AFOAuth1Client需要使用baseURL進行初始化時,會出現此問題。我已經嘗試@「」,零和@「http://」,這些都會觸發AFOAuth1Client初始化中的崩潰。

我的問題是:如何創建一個AFOAuth1Client實例,該實例的baseURL爲零,或者如何更改authorizeUsingOAuthWithRequestTokenPath的參數以允許使用正確的路徑? (授權URL有www,而請求URL和訪問URL沒有www。)。

AFOAuth1Client *client = [[AFOAuth1Client alloc] initWithBaseURL:[NSURL URLWithString:@""]key:kConsumerKey secret:kConsumerSecret]; 
    [client authorizeUsingOAuthWithRequestTokenPath:@"http://api.XXX.com/oauth/request_token" userAuthorizationPath:@"http://www.XXX.com/oauth/authorize" callbackURL:nil accessTokenPath:@"http://api.XXX.com/oauth/access_token" accessMethod:@"Identity" 
     success:^(AFOAuth1Token *accessToken) { 
      NSLog(@"successful login"); 
    } failure:^(NSError *error) { 
      NSLog(@"could not login error %@", error); 
    }]; 
+0

鏈接是錯誤的 – 2016-02-02 12:30:59

回答

0

第一步是編輯AFHTTPClient接口文件。

更改@property的baseUrl到:被輸入

@property (readwrite, nonatomic, retain) NSURL *baseURL; 

這使我們能夠根據當前地址動態基本URL。在我的情況下,AuthorizeURL /請求令牌/訪問令牌。

接下來,我更新了AFOAuth1Client類,並用正確的更新基本URL以下方法手動更改基本URL:

(void)authorizeUsingOAuthWithRequestTokenPath:(NSString *)requestTokenPath 
         userAuthorizationPath:(NSString *)userAuthorizationPath 
           callbackURL:(NSURL *)callbackURL 
          accessTokenPath:(NSString *)accessTokenPath 
           accessMethod:(NSString *)accessMethod 
            success:(void (^)(AFOAuth1Token *accessToken))success 
            failure:(void (^)(NSError *error))failure 

...在你的問題提供

//set baseURL 
    self.baseURL = [NSURL URLWithString:@"http://www.XXX.com/"]; 
    [[UIApplication sharedApplication] openURL:[[self requestWithMethod:@"GET" path:userAuthorizationPath parameters:parameters] URL]]; 

    //reset it back 
    self.baseURL = [NSURL URLWithString:@"http://api.XXX.com/"]; 
+0

AFOAuth1Client不是自包含的,它依賴於AFNetworking,您需要將所有這些更改填入AFNetworking堆棧。這並不像乍一看那麼簡單。 – pinxue 2013-05-22 03:37:56

+0

@pinxue感謝您的幫助 – 2013-08-05 14:04:38

相關問題