使用AFNetWorking时出现错误代码-1011 [英] Error code -1011 when I use AFNetWorking

查看:205
本文介绍了使用AFNetWorking时出现错误代码-1011的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我们的客户公司做服务。我尝试通过AFNetWorking从他们的服务器获取一些信息(我们的客户鼓励使用AFNetWorking)
我使用AFNetWorking做了一些示例,这是有效的。
但是当我使用我们的一个客户URL获取JSON数据时,它失败了,这是错误描述:

I am doing a service in our customer company. And I try to get some information from their server by AFNetWorking (Our customer encourage to use AFNetWorking) I did some sample using AFNetWorking, and it's work. But when I use one of our customer URLs to get JSON data, it failed and this is error description:

Error Domain=com.alamofire.networking.error Code=-1011 
"Expected status code <NSIndexSet: 0x7e274f0>[number of indexes: 100 (in 1 ranges), 
indexes: (200-299)], got 403" UserInfo=0x7b64040 {NSErrorFailingURLKey=<url_hidden_for_stackoverflow>, 
NSLocalizedDescription=Expected status code <NSIndexSet: 0x7e274f0>[number of indexes: 100 (in 1 ranges), indexes: (200-299)], got 403}

我试图找出一些解决方案,但我还不能解决。这是我的代码:

I try to find out some solution, but I can't fix yet. There's my code:

NSURL *url = [NSURL URLWithString:@"http://example.com/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
//[httpClient setDefaultHeader:@"Accept" value:@"text/json"];
//NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:CONST_KEY_REGISTER_UNIQUE_KEY, CONST_API_KEY_TEXT,nil];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"path/to/page.json" parameters:nil];
[httpClient release];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSString *status = [JSON valueForKey:@"status"];
    if ([status isEqualToString:@"OK"]) {
        NSString *uniqueId = [JSON valueForKey:@"uniqueId"];
        [UserSettings setWithKey:CONST_PROGRAM_UNIQUE_KEY value:uniqueId];
    }
    //NSString *message = [json valueForKey:@"message"];
    //NSString *error = [json valueForKey:@"error"];
    [[LoadingView instance] performSelectorOnMainThread:@selector(removeLoadingView)  withObject:nil waitUntilDone:YES];
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
    NSString *errorString = [error description];
    [[LoadingView instance] performSelectorOnMainThread:@selector(removeLoadingView)  withObject:nil waitUntilDone:YES];
}];
NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation:operation];

感谢阅读,非常感谢任何帮助或回复。

Thanks for reading, and any help or reply will be greatly appreciated.

编辑:正如DarkDust所说:服务器否认我的访问权限。但我可以通过基本连接从服务器获取数据:
以下是获取的代码:

As DarkDust said: server deny my access. But I can get data from server by basic connection: Here is code to get:

NSURL *url = [NSURL URLWithString:@"http://example.com/path/to/page.json"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:CONST_CONNECTION_TIMEOUT];
rssConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
[self performSelectorOnMainThread:@selector(downloadStarted) withObject:nil waitUntilDone:NO];
if (rssConnection != nil) {
    do {
        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
    } while (!done);
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    // I can get text here, but it is not JSON format
NSString *content = [NSString stringWithUTF8String:[data bytes]];
}

我想知道为什么rssConnection可以获取JSON文本而AFHTTPClient不能?

I wonder why rssConnection can get JSON text and AFHTTPClient can not ?

推荐答案

服务器正在响应HTTP错误代码403,这意味着 Forbidden 。它拒绝你访问。您需要找出原因,例如通过阅读服务器日志(如果可以)或要求服务器管理员帮助您。可能是需要解除/修改服务器的访问限制。

The server is responding with the HTTP error code 403 which means Forbidden. It denies you access. You need to find out why, for example by reading the server logs (if you can) or asking the server administrator to help you. It might be access restrictions on the server that need to be lifted/modified.

编辑:HTTP POST 是一种想要在服务器上保存内容的操作。虽然正常的 GET 似乎可以根据您编辑的问题正常工作,但现在禁止保存。首先要做的是检查服务器配置。此外,如果您的URL指向一个脚本(JSP,ASP,等等),这是您的唯一有意义的事情,您需要检查它以确定它拒绝您访问的原因(如果服务器配置尚未拒绝)它,它必须是脚本)。

Edit: A HTTP POST is an operation that wants to save something on the server. While the normal GET seems to work just fine according to your edited question, saving is prohibited right now. First thing to do is still examine the server configuration. Additionally, if your URL points to a script (JSP, ASP, whatever) which is the only thing that would make sense in your case you need to examine that to determine why it denies you access (if the server configuration doesn't already deny it, it must be the script).

这篇关于使用AFNetWorking时出现错误代码-1011的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆