2009-06-16 11 views
2

私はASIHTTPRequestパッケージを使用してiPhoneからサーバーにデータを送信し、サーバーに保存すると、私が望むURLを含むレスポンス(文字列)を受け取りますwebviewで読み込みます。理論的にはこれは単純なはずですが、現実には私はこの仕事を全く手に入れることができません。私が推測する文字列のエンコーディングにいくつかの問題があるようです。私がNSLogを返信すれば、それは完全にうまくいくように思えますが、webviewにロードすることを拒否します。Objective-CとASIHTTPRequest - レスポンス文字列の問題

これが私の要求(圧縮符号化で遊んでされて)です:

NSURL *url = [NSURL URLWithString:@"xxx"]; 
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease]; 
[request setFile:imageData forKey:@"photo"]; 
[request setDelegate:self]; 
[request setDidFinishSelector:@selector(requestDone:)]; 
[request setDidFailSelector:@selector(requestWentWrong:)]; 
[request setAllowCompressedResponse:NO]; 
[request setDefaultResponseEncoding:NSUTF8StringEncoding];//NSISOLatin1StringEncoding 
[request start]; 

そして、これが私の応答者である:

- (void)requestDone:(ASIHTTPRequest *)request{ 
    NSString *response = [request.responseString]; 
    NSLog(@"web content: %@", response); 
    [webView loadSite:response]; 
} 

のNSLogが細かいようだが、サイトだけでロードされません。 NSString * temp = @ "" http://www.google.se "のようなNSString変数を送信しようとしました。 loadSite関数に渡すと正常に動作するので、問題はロード自体ではありません。

が大幅にOBJ-Cジャングルの中の任意のポインタやヘルプをappriciateだろう:)

/

答えて

2

は、次の操作を実行してください:

NSString *response = [[request responseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

これは、すべての空白や改行をトリミングします。

+0

素晴らしい!どうもありがとう!私が終わった部分文字列の解決法よりもはるかに良い! –

0

woups fは、私の応答はもちろんです:

- (void)requestDone:(ASIHTTPRequest *)request{ 
    NSString *response = [request responseString]; 
    NSLog(@"web content: %@", response); 
    [webView loadSite:response]; 
} 
1

ので、レスポンスことが判明します\ n(新しい改行)で自動的に終了します。変数をログに記録するときには表示されませんでした。テキストフィールドに書き込むときも、urlobjectに変換してログに記録するときにも表示されませんでした。再びデバッグが報わ;)