2

我正在使用 ASIHTTPRequest 包将一些数据从 iPhone 发送到我的服务器,然后当保存在服务器上时,我收到一个响应(一个字符串),其中包含我想在 webview 中加载的 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 变量,如 NSString *temp = @" http://www.google.se "; 到 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

woups,我的响应者当然是:

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