2009-05-07 11 views
1

NSMutableURlRequestにヘッダを追加する際に問題が発生しました。問題は、「Authorization」の下にヘッダを追加すると表示されないことです。しかし、静的な文字列exp(@ "asdadsadsadga")でインスタンス変数 "auth"を置き換えると、 "Authorization"ヘッダーが表示されます。私はこの時点でかなり失われています。NSStringとNSMutableURLRequestの問題

NSURL *url = [NSURL URLWithString:@"https://www.google.com/analytics/feeds/accounts/default"]; 
NSMutableURLRequest *profileRequest = [NSMutableURLRequest requestWithURL:url]; 

NSLog(auth); //prints correctly 
NSString *authString = [NSString stringWithFormat:@"GoogleLogin Auth=%@", auth]; 
[profileRequest addValue:authString forHTTPHeaderField:@"Authorization"]; 

NSDictionary *allheaders = [profileRequest allHTTPHeaderFields]; 

for (id key in allheaders) 
{ 
    //Nothing prints 
    NSLog(@"key: %@, value: %@", key, [allheaders objectForKey:key]); 
} 

NSLog(auth); //Prints correctly 
+0

これは、残念ながらそこにも認証トークンだった(しかしhttp://stackoverflow.com/questions/791760と同様の問題、のように聞こえますそこへの質問にフォローアップはなかった)。たぶんそれは失敗する原因となる特定の文字です。文字列リテラルを試したときに、auth変数と同じ内容でしたか?もしそうでなければ、私はそれを試みるだろうし、それが失敗するなら、それが動作するまで文字を取り除くことを開始する。 – smorgan

+0

ええ、私はリテラルと同じ正確なトークンを試しました。また、authStringが正しく作成され、NSLog(@ "%@"、authString)を実行して正しい出力を得ることができます。それは本当に私に困ってしまった。 –

+0

このコードを実行すると正確な出力を投稿できますか。 –

答えて

1

まず、NSLog(@ "%@"、auth)でNSLog(auth)をスワップアウトします。前者は危険で、ここで起こっていることのいくつかを公開する可能性があります。また、早い段階で追加してみてください。

auth = @"asdasdasdad"; 

また、単に直接allheadersをダンプしてみてください:

NSLog(@"%@", [profileRequest allHTTPHeaderFields]; 

これは、いくつかの光を当てることがあります。私は、あなたのauth変数に問題があると思われます。おそらくNSMutableURLRequestではなく、メモリ管理に関係しています。

+0

NSLogステートメントは潜在的にクラッシュ/間違っていますが、authStringの作成は安全です。したがって、それがどのように関連性があるのか​​分かりにくいです。 サンプルコードによれば、authは動作しないコードの塊の終わりでも有効なので、メモリ管理の問題にはなりません。 – smorgan

+0

問題は再現できないため、実際の「認証」の内容は非常に関連しています。 –

+0

偶然、私はそれを再現したようです。それは文字列をどのように取得しているのかでなければなりません。私はbase64Encodeにユーザー名/パスワードを発見したいくつかのコードを使用していますが、明らかに失敗しています。 –