Fehlercode -1011 wenn ich AFNetWorking
Ich mache einen service in unsere Kunden. Und ich versuche, einige Informationen von Ihrem server durch AFNetWorking (Unsere Kunden ermutigen, zu verwenden, AFNetWorking)
Ich habe einige Beispiel für die Verwendung von AFNetWorking, und es ist Arbeit.
Aber wenn ich einen unserer Kunden, URLs zu bekommen JSON-Daten nicht, und das ist die Beschreibung der Fehler:
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}
Ich versuche, herauszufinden, eine Lösung, aber ich kann nicht fix noch nicht. Da ist mein 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];
Vielen Dank für das Lesen und jede Hilfe oder Antwort wird sehr geschätzt werden.
EDIT: Wie DarkDust sagte: server deny mein Zugang. Aber ich kann die Daten vom server basic Anschluss:
Hier ist der code zu bekommen:
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]];
}
Frage ich mich, warum rssConnection bekommen können JSON-text und AFHTTPClient nicht ?
- Glaubst du wirklich, es ist eine gute Idee, um post-interne/private details von Ihren Kunden ohne Verschleierung?
- Dies ist nur eine test-Seite, keine private Seite. Es wird mehr ändern, bevor ich das beenden kann. Und zukünftigen Bedarf es-API-Schlüssel zuzugreifen, und natürlich, Verstecke ich es
- Noch immer, jetzt jeder kann sehen, wer Ihr Kunde ist. Ihre Kunden vielleicht nicht sehr glücklich darüber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der server antwortet mit dem HTTP-Fehlercode 403 was bedeutet Verboten. Es verweigert Ihnen den Zugang. Sie müssen herausfinden, warum, zum Beispiel durch das Lesen der server-logs (wenn Sie können) oder Fragen Sie den server-administrator, um Ihnen zu helfen. Es könnte sein, Zugriffsbeschränkungen auf dem server sein müssen, aufgehoben/geändert.
Bearbeiten: EIN HTTP
POST
ist ein Vorgang, der will etwas speichern auf dem server. Während die normaleGET
scheint zu funktionieren nur fine-entsprechend Ihrer Frage bearbeitet, speichern ist verboten jetzt. Erste, was zu tun ist, noch untersuchen Sie die server-Konfiguration. Darüber hinaus, wenn Ihr die URL verweist auf ein Skript (JSP, ASP, was auch immer), das ist das einzige, was Sinn machen würde in Ihrem Fall müssen Sie überprüfen, um zu bestimmen, warum leugnet er Sie zuzugreifen (wenn die server-Konfiguration nicht leugnen, es muss das Skript).Expected status code ..., got 403
. Der server verweigert Sie den Zugriff.Als Referenz, weil der hohe Suche Ergebnis via google...
Für andere, die die Suche nach den möglichen Fehler-codes abgerufen über AFNetworking, finden Sie in der apple-Dokumentation für URL-Loading-System-Fehler-Codes, da diese identisch sind.
NSURLErrorBadServerResponse = -1011
Zurückgegeben, wenn das URL-Loading-system empfängt fehlerhafte Daten vom server.
Dies ist äquivalent zu den "500 Server Error" Nachricht von HTTP-Servern.