在 URL 请求问题中发送页面编号。获得成功但结果为空

Posted

技术标签:

【中文标题】在 URL 请求问题中发送页面编号。获得成功但结果为空【英文标题】:Sending page no in URL request issue. Getting success but empty result 【发布时间】:2019-10-05 10:46:15 【问题描述】:

我的 Api 的尾部有 Constants.getliked = "get-liked-story?page=1"。我正在通过 alamofire 请求,但没有得到回复。如何发送包含的页码?和 = 符号。

let url : String = Constants.wevlrBaseUrl + Constants.privateLink + Constants.getliked

       //let sv = UIViewController.displaySpinner(onView: view)
        let userToken = UserDefaultValues.authToken
        let headers: HTTPHeaders = ["Authorization": "Bearer " + userToken!]
        let parameters: Parameters = [
            "page": "1" ]
        Alamofire.request(url, method: .get, parameters: parameters,headers:headers).responseJSON  response in

            print("request-",response.request!)
            print("response-",response.response!)
            print("data-",response.data!)
            print("result-",response.result)

            debugPrint(response)

            if let JSON = response.result.value 
                print("json: \(JSON)")
            
        

输出:

[请求]:GET http://169.65.125.111/abcd/public/api/v1/get-liked-story?page=1

[响应]: URL:http://169.65.125.111/abcd/public/api/v1/get-liked-story?page=1 状态码:200,标题 “缓存控制” = ( “无存储,无缓存,必须重新验证” ); 连接 = ( “活着” ); “内容长度” = ( 2 ); “内容类型” = ( “应用程序/json” ); 日期 = ( “格林威治标准时间 2019 年 10 月 7 日星期一 11:37:43” ); 过期 = ( “格林威治标准时间 1981 年 11 月 19 日星期四 08:52:00” ); “保持活力” = ( “超时=5,最大值=99” ); 杂注 = ( “无缓存” ); 服务器 = ( “Apache/2.4.18 (Ubuntu)” );

[数据]:2字节

[结果]:成功:( )

[Timeline]: Timeline: "Request Start Time": 592141063.093, "Initial Response Time": 592141063.178, "Request Completed Time": 592141063.178, "Serialization Completed Time": 592141063.178, "Latency": 0.086 secs, "请求持续时间”:0.086 秒,“序列化持续时间”:0.000 秒,“总持续时间”:0.086 秒

json: ( )

【问题讨论】:

nil 传递给paramsAlamofire.request(url, parameters: nil, headers:headers)。打印你最终的url,看看它是否与后端需要的url相同。 邮递员正在显示结果,但是即使在成功并且元素计数为 2 之后,我的响应也是空的。:/ 元素计数为否。数组中的项目。我已经编辑了输出。 实际上这意味着客户端的一切都很好。是你的后端有问题。它正在发送一个空数组。如果您的请求有任何问题,它应该抛出一个正确的错误而不是 success 响应和一个空列表。 好的,谢谢,我会再检查一次。 【参考方案1】:

假设常量中的变量有这个值

let wevlrBaseUrl =  "https://***.com"
let privateLink =  "/questions"
let getliked =  "/get-liked-story?page=1"

然后只使用带有 url 和 headers 参数的 Alamofire 请求方法

【讨论】:

不工作,实际上我没有得到数据值。我将 likeDataList 作为空数组 :(

以上是关于在 URL 请求问题中发送页面编号。获得成功但结果为空的主要内容,如果未能解决你的问题,请参考以下文章

用PHP怎么发送HTTP POST 请求。怎么获得返回结果。

向数据库发送请求(谷歌表)

支付宝支付流程

并行(代理)请求并获得最快的结果

ajax请求请求数据缓存问题分析以及解决方案

我想使用 OkHttpClient 发出请求,如果响应不成功,我想更改 URL