2012-03-18 138 views
2

我是AFNetworking框架的新手。我嘗試發送JSON請求到服務器,以獲得JSON響應,所以我想是這樣的:如何通過JSON請求

NSURL *url = [NSURL URLWithString:@"http://data.mycity.gov/api/views/INLINE/rows.json?method=index"]; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
    [request setValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Content-Type"]; 

    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
     NSLog(@"Success"); 
    } failure:^(NSURLRequest* req,NSHTTPURLResponse *req2, NSError *error,id mex) { 
     NSLog(@"Failed"); 
     NSLog(@"%@",[error description]); 

    }]; 

    [operation start]; 

所以我總是找到我自成不良區,這個錯誤描述:

Error Domain=com.alamofire.networking.error Code=-1011 "Expected status code in (200-299), got 400" UserInfo=0x7b58030 {NSErrorFailingURLKey=http://data.mycity.gov/api/views/INLINE/rows.json?method=index, NSLocalizedDescription=Expected status code in (200-299), got 400} 

有什麼建議嗎?我錯過了什麼?

+0

Malek,我不確定你是什麼意思的JSON請求 - 這是一個HTTP請求,也許一些請求的參數是缺少的。你正在請求數據的API? – 2012-03-18 13:52:20

+0

你好Shai,是的,這是一個HTTP請求,但爲了獲得JSON響應。 – Luca 2012-03-18 14:23:37

回答

1

的400周來狀態代碼替換

[NSString stringWithFormat:@"application/json"] 

。客戶端不應該在沒有修改的情況下重複請求。

當我嘗試去那個網址: http://data.mycity.gov/api/views/INLINE/rows.json?method=index「 ,我得到一個未找到錯誤

確保您使用的API是正確的,如果web服務返回JSON,你應該能夠鍵入該URL到你的瀏覽器並得到一個JSON響應

+0

我得到他的問題的來源,我曾經使用'ASIHTTPRequest'工作,並且使用了:[[appendPostData:[json dataUsingEncoding:NSUTF8StringEncoding]]; '你知道怎麼做'AFNetworking'嗎? – Luca 2012-03-18 14:34:13

+0

您可以發佈您用於ASI的Web服務請求代碼嗎?如果我能看到整個請求調用之前和之後,我應該能夠幫助你找出答案。 – 2012-03-18 16:29:56

0

看來你的服務器正在返回400,「壞請求」。檢查您的網址是否正確。

順便說一句,你的stringWithFormat是多餘的。壞請求 請求不能被服務器因爲語法錯誤理解 - 你可以用

@"application/json"