Swift中的HTTP请求和swift3中的POST方法

mik*_*wat 4 xcode httprequest raw-data postman swift3

我正在尝试在Swift3中运行HTTP请求,将POST 2参数发送到URL.

例:

链接:

http://test.tranzporthub.com/street45/customer_login.php
Run Code Online (Sandbox Code Playgroud)

PARAMS:

{
    "user_id":"chaitanya3191@gmail.com",
    "password":"123"
}
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

我甚至不想阅读回复.我只是想发送它来通过PHP文件对我的数据库进行更改.

Atl*_*dal 7

我想,你完全是新手,但这里有一些你可以在SWIFT 3中尝试的东西:

  1. 打开info.plist文件(双击或右键单击>打开为>源代码)
  2. 在关闭</dict></plist>标记之前粘贴此代码:

    <key>NSAppTransportSecurity</key>
    <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>tranzporthub.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
    
    Run Code Online (Sandbox Code Playgroud)

  3. 现在打开您的视图控制器并将此代码粘贴到您要发布请求的位置:

    var request = URLRequest(url: URL(string: "http://test.tranzporthub.com/street45/customer_login.php")!)
    request.httpMethod = "POST"
    let postString = "user_id=chaitanya3191@gmail.com&password=123"
    request.httpBody = postString.data(using: .utf8)
    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        guard let data = data, error == nil else {                                                 // check for fundamental networking error
            print("error=\(error)")
            return
        }
    
        if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {           // check for http errors
            print("statusCode should be 200, but is \(httpStatus.statusCode)")
            print("response = \(response)")
    
        }
    
        let responseString = String(data: data, encoding: .utf8)
        print("responseString = \(responseString)")
    }
    task.resume()
    
    Run Code Online (Sandbox Code Playgroud)

注意:如果您不需要,可以删除打印语句!

希望这可以帮助!:)


Use*_*558 6

 @IBAction func postAction(_ sender: Any) {
    let Url = String(format: "your url")
    guard let serviceUrl = URL(string: Url) else { return }
    //        let loginParams = String(format: LOGIN_PARAMETERS1, "test", "Hi World")
    let parameterDictionary = ["username" : "@kilo_laco", "tweet" : "Hi World"]
    var request = URLRequest(url: serviceUrl)
    request.httpMethod = "POST"
    request.setValue("Application/json", forHTTPHeaderField: "Content-Type")
    guard let httpBody = try? JSONSerialization.data(withJSONObject: parameterDictionary, options: []) else {
        return
    }
    request.httpBody = httpBody

    let session = URLSession.shared
    session.dataTask(with: request) { (data, response, error) in
        if let response = response {
            print(response)
        }
        if let data = data {
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: [])
                print(json)
            }catch {
                print(error)
            }
        }
        }.resume()


}
Run Code Online (Sandbox Code Playgroud)