Iphone Cocoa错误256,使用initWithContentsOfURL时:

Iphone Cocoa错误256,使用initWithContentsOfURL时:,iphone,objective-c,ios,cocoa-touch,Iphone,Objective C,Ios,Cocoa Touch,我正在从我的站点获取数据: NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?email=%@&name=%@&pass=***", nameTrimmmed, [jsonObject objectForKey:@"email"]]; NSLog(@"%@", website); NSError *error = nil; NSString *contents

我正在从我的站点获取数据:

NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?email=%@&name=%@&pass=***", nameTrimmmed, [jsonObject objectForKey:@"email"]];
NSLog(@"%@", website);
NSError *error = nil;
NSString *contents = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:website] encoding:NSUTF8StringEncoding error:&error];

内容有错误256。我哪里错了?

检查控制台日志中的
NSLog(@“%@”,网站)

您将看到如下内容:

http://www.mysite.com/fbconnect.php?email=thetrimmedname&name=emailaddress&pass=***
这样做:

NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?email=%@&name=%@&pass=***", [jsonObject objectForKey:@"email"], nameTrimmmed ];
与此相反:

NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?email=%@&name=%@&pass=***", nameTrimmmed, [jsonObject objectForKey:@"email"]];

检查控制台日志中的
NSLog(@“%@”,网站)

您将看到如下内容:

http://www.mysite.com/fbconnect.php?email=thetrimmedname&name=emailaddress&pass=***
这样做:

NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?email=%@&name=%@&pass=***", [jsonObject objectForKey:@"email"], nameTrimmmed ];
与此相反:

NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?email=%@&name=%@&pass=***", nameTrimmmed, [jsonObject objectForKey:@"email"]];

问题是希伯来文字符,你应该用html转义它们,也可以用英文字符来代替request,看看它是否有效

- (void)yourMethod
{
    NSString *name = @"שימרגוליס";
    name = AFURLEncodedStringFromStringWithEncoding(name, NSUTF8StringEncoding);
    NSString *website = [NSString stringWithFormat:@"http://www.ba-cafe.com/fbconnect.php?email=%@&name=%@&pass=SwHyK17!",@"email@mail.com",name];
    NSLog(@"%@", website);
    NSError *error = nil;
    NSString *contents = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:website] encoding:NSUTF8StringEncoding error:&error];
}

如果
AFURLEncodedStringFromStringWithEncoding
是来自的函数,则问题是希伯来文字符,您应该用html对其进行转义,也可以使用英文字符尝试请求,以查看其是否有效

- (void)yourMethod
{
    NSString *name = @"שימרגוליס";
    name = AFURLEncodedStringFromStringWithEncoding(name, NSUTF8StringEncoding);
    NSString *website = [NSString stringWithFormat:@"http://www.ba-cafe.com/fbconnect.php?email=%@&name=%@&pass=SwHyK17!",@"email@mail.com",name];
    NSLog(@"%@", website);
    NSError *error = nil;
    NSString *contents = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:website] encoding:NSUTF8StringEncoding error:&error];
}

其中,
AFURLEncodedStringFromStringWithEncoding
是来自的函数,这是因为电子邮件地址中的点

看这里:
这是因为电子邮件地址中有点

看这里:

您的参数中似乎混淆了电子邮件和姓名。您的参数中似乎混淆了电子邮件和姓名。同样,更改位置没有帮助。然后您需要访问此处:所以我需要更改我的mysql表?不,错误与您的类似,本文将帮助您理解为什么会出现此错误。因此我不明白这一点。错误在我的服务器或iphone上?同样,更改位置没有帮助。然后你需要访问这里:所以我需要更改我的mysql表?不,错误与你的类似,本文将帮助你理解为什么会出现此错误。所以我不理解这一点。错误是在我的服务器上还是在iphone上?正如我说的,您在本地转义它们,并在服务器端取消转义,Objut-C的转义函数的一个很好的例子可以在AFNETWEB代码中找到,这样您的字符串将看起来像“代码> %D7%A9%D7% 99% D7%9E%D7%A8%D7% 92% D7% 95% D7%9C%D7% 99% D7%A1 这对于URLCF代表核心基础是完全有效的并且<代码> CFSTRIGReF <代码>例如是代表代码< NString 的底层类。如果您使用ARC,并且只想从Afnetroking复制方法,请参阅代码的更新答案让我们看看您是否使用ARC?如果没有,那么就使用上面链接中的函数代码,就像我说的那样,在本地转义它们,在服务器端使用unescape,Objut-C的转义函数的一个很好的例子可以在AFNETWEB代码中找到,这样您的字符串将看起来像“代码> %D7%A9%D7% 99% D7%9E%D7%A8%D7% 92% D7% 95% D7%9C%D7% 99% D7%A1 这对于URLCF代表核心基础是完全有效的并且<代码> CFSTRIGReF <代码>例如是代表代码< NString 的底层类。如果您使用ARC,并且只想从Afnetroking复制方法,请参阅代码的更新答案让我们看看您是否使用ARC?如果没有,那么就使用上面链接中的函数代码,因为它不工作。URL在浏览器上工作,在iphone上不工作。不工作。在浏览器上而不是在iphone上工作的URL。