2016-07-19 13 views
0

私は迅速な投稿依頼を試みています。私は客観的なCで成功しましたが、迅速に私は要求を送ることができませんでした。 PHPの$emailOKが情報を取得できませんでした。問題はどこだ?ヘルパーに感謝します。ここでは、迅速なコードここ即決でリクエストを投稿できませんでした

func httpPost1(url:String, postData: String, completion: String -> Void) { 
     let request = NSMutableURLRequest(URL: NSURL(string: url)!) 
     request.HTTPMethod = "POST" 
     let postString = postData 
     request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 
     let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in 
      guard error == nil && data != nil else {               // check for fundamental networking error 
       print("error=\(error)") 
       return 
      } 

      if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {   // check for http errors 
       print("statusCode should be 200, but is \(httpStatus.statusCode)") 
       print("response = \(response)") 
      } 

      let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
      print("responseString = \(responseString)") 
     } 
     task.resume() 
     } 

はexcutionコード

httpPost1("xxxxx", postData: "emailOK=Hello") { result in 

       print(result)//result is your string-response from server 

      } 

ここに私のPHPコード

<?php 

$link = mysqli_connect($dbhost, $username, $dbpass, $database); 

if (!$link) { 
    echo "Error: Unable to connect to MySQL." . PHP_EOL; 
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
    exit; 
} 

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; 
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; 


$emailOK = isset($_GET["emailOK"]) ? $_GET["emailOK"] : ''; 

echo $emailOK; 

$query = "INSERT INTO UserInfo VALUES ('', '$emailOK')"; 
mysqli_query($link, $query) or die (mysqli_error("error")); 


mysqli_close($link); 
?> 
+1

なぜPOSTリクエストをテストしているときに '$ _GET'を使用していますか? – OOPer

+0

@OOPer私はポストフォームに変更、それは、感謝の男働いた。 –

+0

ご報告いただきありがとうございます。あなたが時間を作ることができるなら、あなた自身で答えを書いてください。あなたとあなたのアプリのために幸運。 – OOPer

答えて

1

@OOPerコメントありがとうございました。 PHPで問題があります$emailOK = isset($_GET["emailOK"]) ? $_GET["emailOK"] : '';$emailOK = $_POST['emailOK'];

0

セッションオブジェクトを作成するには、このコードを試してみてくださいがあるされています。私はあなたの問題を完全に解決するかどうかは分かりませんが、試してみるべきです。

let config = NSURLSessionConfiguration.defaultSessionConfiguration() 
let session = NSURLSession(configuration: config) 
+0

以下のコンテンツタイプやその他のコンテンツタイプの試しに問題がある可能性があります。 'request.setValue(" application/json; charset = utf-8 "、forHTTPHeaderField:" Content-Type ")' – Chandan

0

あなたがURLの一部として電子メールを送信する必要がある場合は、URLに含める必要があります。

var requestURL = url + "?" + postData 

let request = NSMutableURLRequest(URL: NSURL(string: url)!) 

しかし、あなたはPOSTリクエストを送信しているので、それは通常、HTTPボディに送信されます。かなり一般的な方法は、JSON形式でそれを送信することです:

let dict = ["emailOK" : "Hello"] 
request.setValue("application/json", forHTTPHeaderField: "Content-Type") 
do { 
    request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted) 
} catch _ { 
    request.HTTPBody = nil 
} 
0

あなたが成功したGET/POSTリクエストを書くために無用な努力と時間の多くを費やすしたくない場合は、あなたの最良の選択の持つライブラリに依存しますあなたが必要とするすべての方法。私の愚見で

は、私が提案するあなた Alamofire https://github.com/Alamofire/Alamofire

そうでない場合、あなたはのContent-TypeのContent-Typeヘッダ情報

希望これを指定する必要が正常に要求を完了するためにあなたを助けます。

0
let dict = ["emailOK" : "Hello"] 
    let jsonData = try! NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted) 
    let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)! as String 
    let request = NSMutableURLRequest(URL: NSURL(string:"url")!) 
    request.HTTPMethod = "POST" 
    let postString = jsonString 
    request.HTTPBody = postString.dataUsingEncoding(NSASCIIStringEncoding) 
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in 
     guard error == nil && data != nil else {               // check for fundamental networking error 
      print("error=\(error)") 
      return 
     } 

     if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {   // check for http errors 
      print("statusCode should be 200, but is \(httpStatus.statusCode)") 
      print("response = \(response)") 
     } 

     let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
     print("responseString = \(responseString)") 
    } 
    task.resume() 
} 
関連する問題