【问题标题】:Using AFNetworking and getting Error 404使用 AFNetworking 并收到错误 404
【发布时间】:2012-11-26 20:39:47
【问题描述】:

这是我的第一次尝试,我遇到了错误

Expected status code in (200-299), got 404

我正在关注这个教程>link

我已经创建了下面的类:

TalkToNetwork.h

#import "AFHTTPClient.h"
#import "AFNetworking.h"

typedef void (^JSONResponseBlock)(NSDictionary* json);

@interface TalkToNetwork : AFHTTPClient

@property (strong, nonatomic) NSDictionary* user;

-(BOOL)isAuthorized;

-(void)commandWithParams:(NSMutableDictionary*)params onCompletion:(JSONResponseBlock)completionBlock;

+(TalkToNetwork*)sharedInst;

@end

TalkToNetwork.m

    #import "TalkToNetwork.h"

//the web location of the service
#define kAPIHost @"http://localhost/"
#define kAPIPath @"Test/"

@implementation TalkToNetwork

@synthesize user;

+(TalkToNetwork*)sharedInst{

    static TalkToNetwork *sharedInstance = nil;
    static dispatch_once_t oncePredicate;
    dispatch_once(&oncePredicate, ^{
        sharedInstance = [[self alloc] initWithBaseURL:[NSURL URLWithString:kAPIHost]];

    });

    return sharedInstance;
}

-(BOOL)isAuthorized{

    return [[user objectForKey:@"IdUser"] intValue] > 0;
}

-(void)commandWithParams:(NSMutableDictionary*)params onCompletion:(JSONResponseBlock)completionBlock{

    NSMutableURLRequest *apiRequest =
    [self multipartFormRequestWithMethod:@"POST"
                                    path:kAPIPath
                              parameters:params
               constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
               }];

    AFJSONRequestOperation* operation = [[AFJSONRequestOperation alloc] initWithRequest: apiRequest];
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        //success!
        printf("success");
        completionBlock(responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        //failure :(
        printf("failure");
        completionBlock([NSDictionary dictionaryWithObject:[error localizedDescription] forKey:@"error"]);
    }];

    [operation start];
}


-(TalkToNetwork*)init{

    self = [super init];

    if (self != nil) {
        user = nil;

        [self registerHTTPOperationClass:[AFJSONRequestOperation class]];

        [self setDefaultHeader:@"Accept" value:@"application/json"];
    }

    return self;
}

@end

我已经下载并安装了 XAMPP 作为教程建议,运行所有三个控件(Apache、MySQL、FTP),并且我使用了phpmyadmin 来手动创建数据库和表(“登录”)。

我正在按照教程中的每个步骤进行操作,但仍然出现上述错误。此外,我手动将链接传递给浏览器“http://localhost/Test/”并收到错误 404。 我在这里缺少什么?

提前致谢。

【问题讨论】:

    标签: iphone ios phpmyadmin xampp


    【解决方案1】:

    您传入的 URL 无效。在浏览器中检查 URL ..

    1. 检查 Apache 是否在 http//localhost/http://172.0.0.1/ 或.. http://localhost:8080/ 上运行
    2. 检查PHP是否运行良好http://localhost/test/index.php
    3. ...

    UPD

    来自教程:

    "解压后的 ZIP 应该包含几个 PHP 文件和一个名为 “上传。主要的 API 文件是 index.php"

    ……然后……”

    将 Finder 中的文件复制到您的网络文件夹中”

    ...

    " 如果您有任何设置,则必须更改域和路径 除了从本地机器调用 API”

    也许..你必须试试http://localhost/xampp/test/

    UPD2

    错误 403 禁止访问:

    1 a) 在 Finder 中选择测试文件夹 b) 选择“显示信息” c)在“所有权和权限”下检查您是否具有读\写权限

    2 检查\修改您的 httpd.conf 从“拒绝所有人”到“订购允许”和“所有人允许” - like here

    【讨论】:

    • 好吧,本地主机本身将我引导至localhost/xampp。我想你的意思是,127.0.0.1 这会将我引导到上面的同一页面。但是,php 链接返回“找不到对象!”。我正在使用 Mac 机器,它需要在哪里有 index.php 才能找到它?谢谢
    • 因为我是 Mac 机器的新主人.. 你知道我在哪里可以找到 web 文件夹吗?我错过了这一点......
    • 更新:忘了提到我已经将包含文件的文件夹粘贴到我的硬盘中的 WebServer/Documents 中。我试过 localhost/~myusername/test、localhost/myusername/test、localhost/test、localhost/xampp/~myusername/test 没有成功!我迷路了:(
    • /Applications/XAMPP/htdocs/ - Apache DocumentRoot 目录,这是网页所在的位置。这里..你必须把所有文件夹\文件..
    • 好的,我已经将文件夹粘贴到那里。 URL localhost/xampp/test/index.php 给出错误 404。但是,如果我尝试 localhost/test/index.php 现在给出错误 403 禁止访问!我该如何解决?感谢您的宝贵时间。
    猜你喜欢
    • 2015-02-27
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2017-11-01
    • 2018-07-28
    相关资源
    最近更新 更多