Swift HTTP Post Request无法正常工作

时间:2018-04-06 04:49:48

标签: ios swift http

单击该按钮时,testt功能将首先打开相机以获取扫描结果。然后它会向扫描结果发送一个http post请求到url。问题是现在相机可以打开,但是http post请求无效。

   @IBAction func testt(_ sender: Any) {

    guard checkScanPermissions() else { return }

    readerVC.modalPresentationStyle = .formSheet
    readerVC.delegate                = self

    readerVC.completionBlock = { (result: QRCodeReaderResult?) in
        if let result = result {
            print("Completion with result: \(result.value) of type \(result.metadataType)")

        }
    }

    present(readerVC, animated: true, completion: nil)

func reader5(_ reader: QRCodeReaderViewController, didScanResult result: QRCodeReaderResult){
    reader.stopScanning()

    dismiss(animated: true) { [weak self] in
  

POST REQUEST start

         let myUrl5 = URL(string: "http://ptsv2.com/t/jhil6-1522989475/post");

        var request = URLRequest(url:myUrl5!)

        request.httpMethod = "POST"// Compose a query string

        let postString = "test=" + result.value

        request.httpBody = postString.data(using: String.Encoding.utf8);

        let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in

            if error != nil
            {
                print("error=\(error)")
                return
            }

            if let data = data {
                let string = String(data: data, encoding: String.Encoding.utf8)
                print(string) //

                DispatchQueue.main.async {
                    self?.outlet4.text = string


                }   
            }

        }
        task.resume()

        //end of POST REQUES
    }

}


}

2 个答案:

答案 0 :(得分:0)

您将在info.plist文件中添加以下行

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>

enter image description here

答案 1 :(得分:0)

或许let postString = "test=" + result.value犯了大错。更像是let postString = "test=\(result.value)"。这应该有用。