簡體   English   中英

AFNetworking 2 GET與JSON響應

[英]AFNetworking 2 GET with JSON response

我正在構建一個簡單的GET函數,該函數應返回JSON對象。 使用AFNetworking 2.代碼可以編譯,但是我無法查明運行時出現的錯誤源。 可能是服務器上的content-type:是text / html,我希望是jsonobj。 服務器使用“ Basic user:id”標頭,是否應將其添加到setValue forHttpHeaderField中?

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://the website.com"]];
    manager.securityPolicy.allowInvalidCertificates = YES;
    [manager setRequestSerializer:[AFHTTPRequestSerializer serializer]];
    [manager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"user" password:@"pass"];   
    [manager GET:@"/api/data/interval?month" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@" Yep %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@" Nope %@", error);
    }];

這是我得到的錯誤

 Nope Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: forbidden (403)" UserInfo=0x8a9dec0 {NSErrorFailingURLKey=http://thewebsite.com/api/data/interval?month, NSLocalizedDescription=Request failed: forbidden (403), NSUnderlyingError=0x8a99e00 "Request failed: unacceptable content-type: text/html", AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x8bb0ac0> { URL: http://thewebsite.com/api/data/interval?month } { status code: 403, headers {
    Connection = "keep-alive";
    "Content-Encoding" = gzip;
    "Content-Language" = "";
    "Content-Type" = "text/html";
    Date = "Tue, 04 Feb 2014 13:02:12 GMT";

首先,您必須初始化您的基本URL,如下所示:

 NSURL *baseURL = [NSURL URLWithString:@"www.abv.bg"];

之后,您可以創建相對路徑,例如:

NSString *path = @"/Path/to/somewhere";

最后是這樣的初始化URL字符串:

NSString *absoluteURL = [[NSURL URLWithString:path relativeToURL:baseURL] absoluteString];

現在您可以執行請求了,您知道URL是正確的:

[manager GET:absoluteURL parameters:nil  success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@" Yep %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@" Nope %@", error);
}];

在您的解決方案中,您嘗試執行請求以尋址@“ / api / data / interval?month”而不是真實URL。 HTH。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM