2017-05-04 4 views
3

Swift3でHTTPリクエストを実行しようとしていますが、URLにPOST 2パラメータがあります。swift3のPOSTメソッドによるSwiftのHTTPリクエスト

例:

リンク:

http://test.tranzporthub.com/street45/customer_login.php 

のparams:

{ 
    "user_id":"[email protected]", 
    "password":"123" 
} 

それを行うための最も簡単な方法は何ですか?

回答を読んでいません。私はちょうどPHPファイルを介して自分のデータベース上で変更を行うために送信したいです。私は推測

+0

どのようなフレームワークを使用していますか?あなたは少なくとも* http rest client *のようなものを探してみましたか? – flob

答えて

5

は、あなたは完全に初心者ですが、ここであなたが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> 
    

  3. は、今すぐあなたのビューコントローラを開き、あなたが作りたい、このコードを貼り付けポスト要求:

    var request = URLRequest(url: URL(string: "http://test.tranzporthub.com/street45/customer_login.php")!) 
    request.httpMethod = "POST" 
    let postString = "[email protected]&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() 
    

注:あなたが必要としない場合は、print文を削除することができます!

希望すると便利です。 :)

+0

私のために働いた!ありがとうございました:) – iUser

5
@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() 


} 
+0

あなたはhtmlエンティティを持っていれば、それはUser558の方法です!その後、PHPアプリケーションに送信する場合は、次のようなことを行う必要があります。https://stackoverflow.com/a/18867369/1839484 – Ohiovr

関連する問題