2

ASIHTTPRequest パッケージを使用して iPhone からサーバーにデータを送信し、サーバーに保存すると、Web ビューにロードする URL を含む応答 (文字列) を受け取ります。理論的にはこれは簡単なはずですが、実際にはこの作業をまったく行うことができません。私が推測する文字列のエンコードに問題があるようです。応答を NSLog アウトすると、まったく問題ないように見えますが、webview への読み込みを拒否するだけです。

これは私のリクエストです(圧縮とエンコードで遊んでいます):

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ジャングルでのポインターやヘルプに大いに感謝します:)

/f

4

3 に答える 3

2

次のことを試してください。

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

すべての空白と改行が削除されます。

于 2009-06-16T11:16:40.760 に答える
1

そのため、応答は自動的に \n (新しい改行) で終了することがわかります。これは、変数をログに記録するときも、テキストフィールドに書き込むときも、urlobjectに変換して見つけたログを記録するときも表示されませんでした。デバッグは再び成果を上げます ;)

于 2009-06-16T09:59:09.887 に答える
0

おっと、もちろん私のレスポンダーは次のとおりです。

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
于 2009-06-16T08:07:07.247 に答える