从Web服务器获取响应时出现问题
问题描述:
我通过动态创建URL将数据发送到Querystrings中的Web服务器。当我在UIAlertView中查看URl时,它显示了我正确的一个。从Web服务器获取响应时出现问题
而当我尝试使用NSURL代码获得响应时,它不响应。 以下是代码。
NSString *uu = @"http://www.zenhomeenergy.com/ZenIphoneServUpdate.aspx?CustomerID=11&FirstName=Rob&LastName=O'Connell&State=VIC&Street=4 Southey Street Brighton&PostCode=3186&[email protected]&Mobile=04545455454&HomePhone=54545545545&WorkPhone=787878787878&PrimaryResidence=False&HomeOwner=True";
NSString *text = [NSString stringWithContentsOfURL:[NSURL URLWithString:uu]];
if(text) {
if([text isEqualToString:@"Success."]) {
textView.text = [textView.text stringByAppendingString:@"Success.\n"];
} else {
textView.text = [textView.text stringByAppendingString:@"Failed.\n"];
}
}
如果您尝试将上面的URL放到浏览器中,它会显示“成功”。 但上面的代码不起作用。
或者如果你有另一种更简单的发送数据的方式,请告诉我。
请帮忙。
答
你可以试试这个:
NSString *text = [NSString stringWithContentsOfURL:[NSURL URLWithString:[uu stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
这是可能的一些字符串中的字符,因为他们是不合法的URL字符搞砸了请求,该功能是为了解决这个问题,但我已经发现它不过去工作,所以我实际上已经在使用此功能:
- (NSString*)stringByUrlEncoding {
NSString *result = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8);
return [result autorelease];
}
好运!
+0
Great Mate ....谢谢。 现在工作正常。 欢呼声。 – Amarpreet 2010-05-31 23:56:34
答
你几乎肯定要使用+ [NSString的stringWithContentsOfURL:编码:错误:]或+ [NSString的stringWithContentsOfURL:usedEncoding:错误:]代替,因为+ [NSString的stringWithContentsOfURL:]已废弃的Mac OS X 10.4版的。
“不起作用”是什么意思?你期望会发生什么? – 2010-05-31 08:13:27
它应该返回“成功”。在代码预计工作的文本变量中。 – Amarpreet 2010-05-31 08:15:14