内部dataTaskWithRequest不是Executing。在Swift中击中API [英] Inside dataTaskWithRequest is not Executing. In Swift While Hitting the API

查看:246
本文介绍了内部dataTaskWithRequest不是Executing。在Swift中击中API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用POSTMAN进行同样的数据时,我得到了所需的响应。但是在我的函数里面 dataTaskWithRequest 我没有得到任何响应。

Same Data when I am hitting with POSTMAN I m getting the desired response. But in my Function inside dataTaskWithRequest I am Not Getting Any Response.

func sendData (){
            let url = NSURL(string: "http://www.example.com/quiz-school/mobileData/request.php?request=QuizTotal&module=PQ")!
            let request = NSMutableURLRequest(URL: url)
            request.HTTPMethod = "POST"
            request.HTTPBody = try!  NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions())
            request.setValue("application/json", forHTTPHeaderField: "Content-Type")
            let task =  NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
                if(error != nil){
                    print(error)
                    return
                }
                ((response as! NSHTTPURLResponse).statusCode)
            }
            task.resume()
}

关于数据任务


数据任务后

After Data Task


POSTMAN RESPONSE

感谢任何帮助将不胜感激。

POSTMAN RESPONSE Thanks Any Help Will Be appreciated.

我发送的字典

{
    data =     (
                {
            answer =             (
                9353091
            );
            question = 31675931;
        },
                {
            answer =             (
                9353101
            );
            question = 31675936;
        },
                {
            answer =             (
                9353111
            );
            question = 31675941;
        },
                {
            answer =             (
                9353121
            );
            question = 31675946;
        },
                {
            answer =             (
                9353131
            );
            question = 31675951;
        },
                {
            answer =             (
                9353141
            );
            question = 31675954;
        },
                {
            answer =             (
                9353151
            );
            question = 31675961;
        },
                {
            answer =             (
                9353279
            );
            question = 31676023;
        },
                {
            answer =             (
                9353289
            );
            question = 31676026;
        },
                {
            answer =             (
                9353299
            );
            question = 31676031;
        }
    );
    end = 5565665;
    quizId = 1206500;
    start = 5565656;
}


推荐答案

在我身边发布代码根据我们的讨论:

Posting code working on my side based on our discussion:

//MARK: URLRequest

func sendData (){

    var dict = [String:AnyObject]()

    dict =
    [
        "data" : [
                [
                    "answer" : [9353091],
                    "question" : 31675931
                ],
                [
                    "answer" : [9353101],
                    "question"  : 31675936
                ]
        ],
        "end" : 5565665,
        "quizId" : 1206500,
        "start" : 5565656
    ]

    print(dict)

    let url = NSURL(string: "http://www.proprofs.com/quiz-school/mobileData/request.php?request=QuizTotal&module=PQ")!
    let request = NSMutableURLRequest(URL: url)
    request.HTTPMethod = "POST"
    request.HTTPBody = try!  NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions())
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    let task =  NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
        if(error != nil){
            print("ERRORRRRRRR : \(error)")
            return
        }

        print("RESPONSEEEEE : \(response)")

        do {
            let dic = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:AnyObject]

            print("DIIIIIIIC \(dic)")
        }catch {
            print("adsfdasfdsfdsafdsfadsfs")
        }

        ((response as! NSHTTPURLResponse).statusCode)
    }
    task.resume()
}

最终修改:

OP在上述代码中没有问题。经过几个小时的讨论并与他聊天后,我看到错误发生在 didSelectRowAtIndexPath 中,项目在 sendData后立即崩溃:方法,因此没有从服务器收到响应。

The OP did not had issue in the above mentioned code. After hours of discussion and chat with him I saw that the error was in the didSelectRowAtIndexPath, the project was crashing immediately after the sendData: method was called, hence not response was received from the server.

这篇关于内部dataTaskWithRequest不是Executing。在Swift中击中API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆