swift URLRequest不发送参数

时间:2017-02-14 04:22:41

标签: swift nsurlrequest

在下面的代码中

    let bodyData = "?sub=\(id)&name=User&email=test@test.com"
    let url = NSURL(string: "https://httpbin.org/get");
    let request:NSMutableURLRequest = NSMutableURLRequest(url:url as! URL)
    request.httpMethod = "GET"
    request.httpBody = bodyData.data(using: String.Encoding.utf8);
    NSURLConnection.sendAsynchronousRequest(request as URLRequest, queue: OperationQueue.main)
    {
        (response, data, error) in
        if let HTTPResponse = response as? HTTPURLResponse {
            let statusCode = HTTPResponse.statusCode

            if statusCode == 200 {
                // Yes, Do something. 
                let json = try? JSONSerialization.jsonObject(with: data!, options: [])
                if let dictionary = json as? [String: Any] {
                    let args = dictionary["args"]
                    NSLog("args:\(args)")
                    for (key, value) in dictionary{
                        NSLog("key:\(key) value:\(value)")
                    }
                }
            }
        }
    }

id是传递给函数的字符串。

它返回了有效数据,但测试网站/网址也以json格式返回您发送的任何参数。但是这段代码似乎没有发送bodyData中定义的查询参数,我无法弄清楚原因。

1 个答案:

答案 0 :(得分:1)

如果使用GET请求,则会将参数附加到URL,并且根本不需要显式的<!-- Container --> <div class="container"> <div class="row"> <div class="col-lg-12"> <div class="page-header text-center"> <h2>Radio Button Conclict between Bootstrap And Angular</h2> </div> </div> </div> <div class="row"> <!-- With data-toggle --> <div class="col-lg-6"> <div class="row"> <h4 class="col-lg-12"> This has data-toggle property </h4> </div> <div class="btn-group row" data-toggle="buttons"> <label class="btn btn-primary"> <input type="radio" data-ng-model="selection" name="options" value="option1" /> <span>Option 1</span> </label> <label class="btn btn-primary"> <input type="radio" data-ng-model="selection" name="options" value="option2" /> <span>Option 2</span> </label> <label class="btn btn-primary"> <input type="radio" data-ng-model="selection" name="options" value="option3" /> <span>Option 3</span> </label> </div> <div class="row"> <div class="col-lg-6"> <p>Model: {{selection | json}}</p> </div> </div> </div> <!--/ With data-toggle --> <!-- Without data-toggle --> <div class="col-lg-6"> <div class="row"> <h4 class="col-lg-12"> This has NOT data-toggle property </h4> </div> <div class="btn-group row"> <label class="btn btn-primary"> <input type="radio" data-ng-model="selection2" name="options" value="option1" /> <span>Option 1</span> </label> <label class="btn btn-primary"> <input type="radio" data-ng-model="selection2" name="options" value="option2" /> <span>Option 2</span> </label> <label class="btn btn-primary"> <input type="radio" data-ng-model="selection2" name="options" value="option3" /> <span>Option 3</span> </label> </div> <div class="row"> <div class="col-lg-6"> <p>Model: {{selection2 | json}}</p> </div> </div> </div> <!--/ Without data-toggle --> </div> </div> <!--/ Container -->

此代码是原生Swift 3并使用现代API:

URLRequest