我正在使用ASIHTTPRequest包将一些数据从iPhone发送到我的服务器,然后当保存在服务器上时,我收到一个包含我想在webview中加载的URL的响应(字符串)。从理论上讲,这应该很简单,但实际上我根本无法完成这项工作。似乎是编码字符串的一些问题我猜。如果我NS注销响应似乎完全没问题,但它只是拒绝在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

有帮助吗?

解决方案

尝试执行以下操作:

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

它将修剪所有空格和换行符。

其他提示

所以事实证明,响应会自动以\ n(新换行符)结束。记录变量时没有出现这种情况,既没有将其写入文本字段,也没有将其转换为urlobject并记录我找到它。调试再次得到回报;)

woups,我的回应者当然是:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top