gpt4 book ai didi

ios - 使用 GET 请求获取 JSON 结果,使用 Alamofire 获取参数

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:28 27 4
gpt4 key购买 nike

这是我的带有参数的 url 字符串。 http://api.room2shop.com/api/product/GetProducts?categoryId=22&filter=2&pageNumber=1通过它我得到我的 JSON 数据。我有 AFWrapper.swift 文件,我在其中为 GETrequest 定义了函数。

import UIKit
import Alamofire
import SwiftyJSON

class AFWrapper: NSObject {

class func requestGETURL(strURL: String, params : [String : AnyObject]?, success:(JSON) -> Void, failure:(NSError) -> Void) {
Alamofire.request(.GET, strURL, parameters: params, encoding: ParameterEncoding.JSON).responseJSON { (responseObject) -> Void in

print(responseObject)

if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
success(resJson)
}
if responseObject.result.isFailure {
let error : NSError = responseObject.result.error!
failure(error)
}


}
}
}

现在我在我的 ViewController.swift 文件中调用这个函数。

let strURL = "http://api.room2shop.com/api/product/GetProducts"
let param = ["categoryId": "22", "filter": "2", "pageNumber": "1"]
AFWrapper.requestGETURL(strURL, params: param, success: {
(JSONResponse) -> Void in

if let resData = JSONResponse["ProductList"].arrayObject {
for item in resData {
self.TableData.append(datastruct(add: item as! NSDictionary))
}

do
{
try self.read()
}
catch
{
}
self.do_table_refresh()
}

}) {
(error) -> Void in
print(error)
}

但它没有给我任何回应并给我这个错误。

FAILURE: Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo={NSErrorFailingURLStringKey=http://api.room2shop.com/api/product/GetProducts, _kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=http://api.room2shop.com/api/product/GetProducts, NSLocalizedDescription=cannot parse response, _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x78ecf180 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)" UserInfo={_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1}}} Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo={NSErrorFailingURLStringKey=http://api.room2shop.com/api/product/GetProducts, _kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=http://api.room2shop.com/api/product/GetProducts, NSLocalizedDescription=cannot parse response, _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x78ecf180 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)" UserInfo={_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1}}}

谁能告诉我我做错了什么?我已经搜索了此链接,但没有发现问题所在。 URL Encode Alamofire GET params with SwiftyJSON

最佳答案

我认为你应该删除“encoding: ParameterEncoding.JSON”的参数,像这样:

Alamofire.request(.GET, strURL, parameters: params).responseJSON { (responseObject) -> Void in

print(responseObject)

if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
success(resJson)
}
if responseObject.result.isFailure {
let error : NSError = responseObject.result.error!
failure(error)
}


}

关于ios - 使用 GET 请求获取 JSON 结果,使用 Alamofire 获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36641243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com