ai didi

php - 在 swift 2.0 中通过 .php 发送 POST 消息

转载 作者:可可西里 更新时间:2023-11-01 02:17:58 24 4
gpt4 key购买 nike

我有一个 .php 文件,里面有这个:

<?php print_r($_POST); ?>
<?php

//create short variable names
$message_txt=strip_tags($_POST['message_txt']."\n\n".json_encode($_POST), "<p>");

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: thing<emailaddress@email.com>' . "\r\n";
$headers .= 'From: Website <email@website.com>';

mail($toaddress, "THING Website", $message_txt, $headers);

我想从 textView 中获取文本并通过此 php 发送它。关于如何实现这一目标的任何想法?谢谢

最佳答案

首先,您需要 swift 中的这段代码,以便将变量解析到 php 文件中。我会把代码给你看,然后一步一步地给你解释。

这里是 Swift 的代码:

func HttpRequest() {
let myUrl = NSURL(string: "http://yourUrl.de/yourPhpScript.php");
let request = NSMutableURLRequest(URL: myUrl!);
request.HTTPMethod = "POST";

let postString = "Message=\(textView.text)";

request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding);

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in

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


do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary



if let parseJSON = json {
var resultValue = parseJSON["status"] as? String
print("result: \(resultValue)")

if(resultValue=="Success")
{
// If result from php is success, do something...
}


else
{
// if result from php failed, do something...
}


dispatch_async(dispatch_get_main_queue(), {


//Display alert with confirmation.
let myAlert = UIAlertController(title: "Alert", message: "Your message", preferredStyle: UIAlertControllerStyle.Alert);

let OkAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default){ action in


}

myAlert.addAction(OkAction)
self.presentViewController(myAlert, animated: true, completion: nil);

});

}

} catch {
// report error
}

}
task.resume()

}

让我们从解释开始:

  1. 在第一行中,您有一个字符串引用您的 .php 文件,该文件可能位于服务器上
  2. request.HTTPMethod 设置为 POST 因为你想发布一些东西到 php 文件
  3. 现在是 postString:在我的示例中,php 文件中有一个名为“Message”的变量,使用“=”您只需为其分配一个值,在我的示例中为“textView.text”,您可以附加其他变量以及直接在它后面加上“&”
  4. 然后是一段代码,请求是ASYNC当然是因为你不想阻塞你的主线程,这很重要
  5. if let parseJSON 中将是来自 php 脚本的重新解析值的值,如果 ASYNC 返回一个值,它将可用,不要把它放在它之前有空
  6. 在您的 php 文件中,您可以简单地解析回一个名为“status”的变量以显示成功或失败,然后您可以快速处理它

现在是 php 文件:

<?php 

// If you want to connect to a server you have to do that
$servername = "";
$username = "";
$passwordServer = "";
$dbname = "";


// Create connection
$conn = mysqli_connect($servername, $username, $passwordServer, $dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

if (isset ($_POST["Message"]){
$YourMessageFromSwift = $_POST["Message"];
}

// do what you want using php

$returnValue["status"] = "Success";
echo json_encode($returnValue);

mysqli_close($verbindung);
?>

解释:

  1. 首先创建与您的服务器的连接(这是可选的)
  2. 然后用isset判断变量是否传递正确
  3. 请记住 $_POST["Message"] 与 swift 文件中的相同
  4. 在最后一步中,您可以使用 json_encode 解析状态

希望对大家有帮助:)

关于php - 在 swift 2.0 中通过 .php 发送 POST 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35112833/

24 4 0
文章推荐: python - Swift 与 Python 性能对比
文章推荐: java - 在 JPA 中, native 查询是否发生回滚?
文章推荐: javascript - 如何将 html 实体与 jQuery 进行比较
文章推荐: java - 测试使用 SoftReference 的代码
可可西里
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com