我通过动态创建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"];
}
}
如果您尝试将上述网址放入浏览器,则会显示“成功”。 但上面的代码不起作用。
或者,如果您有另一种更简单的数据发送方式,请告诉我。
请帮助。
答案 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:]。