2010-05-31 159 views
0

我通过动态创建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放到浏览器中,它会显示“成功”。 但上面的代码不起作用。

或者如果你有另一种更简单的发送数据的方式,请告诉我。

请帮忙。

+0

“不起作用”是什么意思?你期望会发生什么? – 2010-05-31 08:13:27

+0

它应该返回“成功”。在代码预计工作的文本变量中。 – Amarpreet 2010-05-31 08:15:14

回答

1

你可以试试这个:

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

0

你几乎肯定要使用+ [NSString的stringWithContentsOfURL:编码:错误:]或+ [NSString的stringWithContentsOfURL:usedEncoding:错误:]代替,因为+ [NSString的stringWithContentsOfURL:]已废弃的Mac OS X 10.4版的。