从Web服务器获取响应时出现问题

时间:2010-05-31 08:01:20

标签: iphone

我通过动态创建URL将数据发送到Querystrings中的webserver。当我在UIAlertView中查看URl时,它显示我正确的。

当我尝试使用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=rob@rob.com&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"];
  } 
}

如果您尝试将上述网址放入浏览器,则会显示“成功”。 但上面的代码不起作用。

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

请帮助。

2 个答案:

答案 0 :(得分: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];

}

祝你好运!

答案 1 :(得分:0)

您几乎肯定希望使用+ [NSString stringWithContentsOfURL:encoding:error:]或+ [NSString stringWithContentsOfURL:usedEncoding:error:],因为自Mac OS X v10.4起,不推荐使用+ [NSString stringWithContentsOfURL:]。