2016-08-05 125 views
1

我使用下面的代码从服务器获取json数据,它返回错误。Alamofire返回错误

代码:

func getPosts(page : Int, count : Int,completionHandler: (responseObject: ResponseModel) ->()){ 
    let header = ["Content-Type": "application/json"] 
    let responseModel = ResponseModel() 
    var posts = [StoryModel]() 
    var comments = [CommentModel]() 
    var customFields = [CustomFieldModel]() 
    let medium = ImageTypeModel() 
    let high = ImageTypeModel() 
    var postCount = [String]() 
    var categories = [CategoryModel]() 
    manager!.request(.GET, "http://www.anonews.co?json=get_recent_posts", parameters: ["page": page,"count" :count],headers: header) 
     .responseJSON { response in 
      switch response.result { 
      case .Success: 
       if let value = response.result.value { 
        let json = JSON(value) 
        print(json) 
        responseModel.status = json["status"].stringValue 
        responseModel.count = json["count"].intValue 
        responseModel.count_total = json["count_total"].intValue 
        responseModel.pages = json["pages"].intValue 

        for item in json["posts"].arrayValue { 
         let storymodel = StoryModel(); 
         storymodel.comment_count = item["comment_count"].stringValue 
         storymodel.content = item["content"].stringValue 
         storymodel.excerpt = item["excerpt"].stringValue 
         storymodel.id = item["id"].intValue 
         storymodel.imageUrl = item["url"].stringValue 
         storymodel.title_plain = item["title_plain"].stringValue 
         storymodel.thumbnail = item["thumbnail"].stringValue 
         medium.url = item["thumbnail_images"]["medium_large"]["url"].stringValue 
         high.url = item["thumbnail_images"]["mvp-medium-thumb"]["url"].stringValue 
         storymodel.medium_large = medium 
         storymodel.mvp_medium_thumb = high 

         for category in json["posts"]["categories"].arrayValue { 
          let categoryModel = CategoryModel() 
          categoryModel.id = category["id"].intValue 
          categoryModel.title = category["title"].stringValue 
          categories.append(categoryModel) 
         } 
         storymodel.categories = categories 

         for commentobject in json["posts"]["comments"].arrayValue { 
          let comment = CommentModel() 
          comment.content = commentobject["content"].stringValue 
          comment.name = commentobject["name"].stringValue 
          comments.append(comment) 
         } 
         storymodel.comments = comments 

         for customFieldObject in json["posts"]["custom_fields"].arrayValue { 
          let customField = CustomFieldModel() 
          for post_count in customFieldObject["post_views_count"].arrayValue { 
           let count = post_count["post_views_count"].stringValue 
           postCount.append(count) 
          } 
          customField.post_views_count = postCount 
          customFields.append(customField) 
         } 
         storymodel.custom_fields = customFields 
         posts.append(storymodel) 
        } 
        responseModel.posts = posts 
        completionHandler(responseObject: responseModel) 
       } 
      case .Failure(let error): 
       print(error) 
      } 


    } 
} 

以下是错误消息: 错误域= NSCocoaErrorDomain代码= 3840 “无效字符周围0值” UserInfo = {NSDebugDescription =字符0周围的值无效。}

任何人都知道我的代码中存在什么问题?

回答

0

我看你使用.GET请求,并在body中传递参数。所以结果会变成失败。

+0

我应该如何在这里添加参数?我用过这么多次,它工作 –

+0

你用'.GET'做了吗?据我所知,.GET只能添加标题或包含在URL中。 –

+0

关注此主题:http://stackoverflow.com/questions/978061/http-get-with-request-body,您可以添加参数'.GET'。但是这样做没有用处。 在你的情况下,结果将不是JSON。那为什么你收到失败。 –