[英]“PBRequester failed with Error Error Domain=NSURLErrorDomain Code=-1000 ”bad URL"
[英]Error Domain=NSURLErrorDomain Code=-1000 “bad URL”
问题以下:我每次都会得到-1000的错误,但实际上不知道我可以更改什么。 我已经尝试过使用GET和其他发送方法。 但是我每次都会得到同样的错误。 有人看到我的错误了吗? 谢谢
NSString *get =[[NSString alloc] initWithFormat:@"mobileNumber=%@&deviceToken=%@",myMobileNumber,myDeviceToken];
[get stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://myHomepage.net/login.php?%@",get]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *responseData = @"";
if ([response statusCode] ==200 )
{
responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"---------responseData: %@",responseData);
return responseData;
} else {
您没有保存stringByAddingPercentEscapesUsingEncoding
的结果。 因此,代替:
[get stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
你需要:
get = [get stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
仅供参考,尽管上述修复程序现在可以成功地百分比转义URL中不允许的所有字符,但实际上,URL中确实有一些可接受的字符,但参数值中不可接受某些字符(例如+
解释为空格) ,或&
表示参数)。
重要的是,以百分比方式转义请求参数中使用的值,以使您不仅转义URL中不合法的那些字符,还转义URL中不合法但不允许的一些字符在参数值内。
不幸的是,标准的stringByAddingPercentEscapesUsingEncoding
方法没有执行此操作。 但是CFURL
函数CFURLCreateStringByAddingPercentEscapes
可以。 您可以将此功能应用于各个参数值。 这是一种在此功能和ARC之间执行必要的免费电话桥接的方法:
- (NSString *)percentEscapeString:(NSString *)string
{
NSString *result = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)string,
(CFStringRef)@" ",
(CFStringRef)@":/?@!$&'()*+,;=",
kCFStringEncodingUTF8));
return [result stringByReplacingOccurrencesOfString:@" " withString:@"+"];
}
您可以按以下方式使用此方法:
NSString *get =[[NSString alloc] initWithFormat:@"mobileNumber=%@&deviceToken=%@", [self percentEscapeString:myMobileNumber], [self percentEscapeString:myDeviceToken]];
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://myHomepage.net/login.php?%@",get]];
无论是否存在这些保留字符,这都应正确地对字符串的参数值进行百分比转义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.