2016-09-11 6 views
0

私はXcodeとSwiftでiOSアプリケーションを開発しています。PHPへのPOSTデータとSwiftyJSONでJSONを取得

私はSwiftyJSON.swiftと次のコードでJSONデータを取得しています:

import UIKit 

class ViewController: UIViewController { 

    var dict = NSDictionary() 

    @IBOutlet weak var firstLb: UILabel! 
    @IBOutlet weak var secondLb: UILabel! 
    var uasername = "TestUserName" 

    override func viewDidLoad() { 

     super.viewDidLoad() 

     let urlString = "http://example.com/showUserInfo.php" 

     if let url = NSURL(string: urlString) { 

      if let data = try? NSData(contentsOfURL: url, options: []) { 

       let json = JSON(data: data) 

       print(json) 

       let f = json[0]["name"].stringValue 

       let s = json[0]["age"].stringValue 

       firstLb.text = f 

       secondLb.text = s 
      } 
     } 
    } 
} 

しかし、私は、あまりにも、showUserInfo.phpに値を投稿することができるようにしたいです。

マイshowUserInfo.php PHPスクリプトは次のようになります。私のPHPスクリプトで$username = "TestUserName";の代わり$username = $_POST['username'];を使用しているとき、私のスウィフトコードでPHPスクリプトからJSONデータを取得

<?php 
$root = realpath($_SERVER["DOCUMENT_ROOT"]); 
include "$root/config.php"; 

$username = $_POST['username']; 

$stmt = $pdo->prepare('SELECT * FROM contact WHERE username = :username'); 
$stmt->execute(array('username' => $username)); 

$userData = array(); 

while($row=$stmt->fetch(PDO::FETCH_ASSOC)){ 
$userData[] = $row; 
} 
echo json_encode($userData); 
?> 

は非常によく動作します。しかし私は$_POST私のアプリで宣言されているこのPHPスクリプトに特定のユーザー名にできるようにしたい。

誰かがライブラリなどをインポートする必要なくこれを行う方法を知っていますか?

答えて

0

はAlamofireとSwiftyJSON実装

let parameters = ["username": "TestUserName"] 

    Alamofire.request(.POST, "http://example.com/showUserInfo.php",parameters: parameters).responseJSON { response in 
     debugPrint(response.result.value) 
     let json = JSON(data: response.data!) 
     print(json) 

     let f = json[0]["name"].stringValue 

     let s = json[0]["age"].stringValue 

     firstLb.text = f 

     secondLb.text = s 
    } 
0

デフォルト動作では、NSURLはGETをHTTPメソッドとして使用します。 NSMutableURLRequestを使用し、POSTにHTTPMethodというプロパティを設定する必要があります。 Swift 2/3で投稿要求を使用する例を正確に表示したい場合は、hereをご覧ください。ここで

+0

こんにちは@Sebastian K、である私を支援しようとするためにどうもありがとうございました。リンクありがとうございます。私は値をPOSTするこのメソッドを知っています。しかし、 'get-JSON-code'と' POST-value-code'の両方のコードを組み合わせることはできません。あなたはそれを知っていますか?あなたは私にそのことを教えてもらえますか? – David

+0

あなたが使用しているライブラリは、Alamofireで動作します(https://github.com/SwiftyJSON/SwiftyJSON#work-with-alamofire)。私は、あなたが外部の図書館を使用しないものを求めたが、その場合、あなたが適応する最も簡単な方法であると理解している。 –

+0

私の遅い返事には申し訳ありません。私はAlamofireをインポートしようとします。しかし、私の目標に達するために私の実際のコードを変更する必要がありますか? – David

関連する問題