亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 Swift JSONEncoder 向 PHP 文件發送 POST 請求

如何從 Swift JSONEncoder 向 PHP 文件發送 POST 請求

PHP
慕哥9229398 2023-09-08 16:44:45
我遇到了一點問題。我有一個從文本輸入獲取值的結構設置:struct CheckoutData: Codable {    var firstName: String    var lastName: String    var email: String    var streetAddress: String    var streetAddress2: String    var city: String    var state: String    var zipCode: String    var total: Double}然后我初始化它并對其進行編碼:let checkoutData = CheckoutData(    firstName: firstName.trimmingCharacters(in: .whitespacesAndNewlines),    lastName: lastName.trimmingCharacters(in: .whitespacesAndNewlines),    email: email.trimmingCharacters(in: .whitespacesAndNewlines),    streetAddress: streetAddress.trimmingCharacters(in: .whitespacesAndNewlines),    streetAddress2: streetAddress2.trimmingCharacters(in: .whitespacesAndNewlines),    city: city.trimmingCharacters(in: .whitespacesAndNewlines),    state: state.trimmingCharacters(in: .whitespacesAndNewlines),    zipCode: zipCode.trimmingCharacters(in: .whitespacesAndNewlines),    total: total)let encoder = JSONEncoder()encoder.outputFormatting = .prettyPrintedlet encoded = try! encoder.encode(checkoutData)var request = URLRequest(url: URL(string: "https://www.MyApp.com/file.php")!)request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpMethod = "POST"request.httpBody = encodedURLSession.shared.dataTask(with: request) { data, response, error in }.resume()這是處理發送電子郵件的 PHP:$emailto = "[email protected]";$subject = "Mobile Order";$firstName = $_POST["firstName"];$lastName = $_POST["lastName"];$email = $_POST["email"];$streetAddress = $_POST["streetAddress"];$streetAddress2 = $_POST["streetAddress2"];$city = $_POST["city"];$state = $_POST["state"];$zipCode = $_POST["zipCode"];$total = $_POST["total"];然而,當我收到電子郵件時,所有變量都是空白的。我已經打印了編碼版本,它似乎編碼正確,因此它很可能位于 PHP 端。抱歉,這有點代碼轉儲,但我無法弄清楚這一點。非常感謝!
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

以下是通過遠程服務器上的 PHP 文件發送電子郵件的示例。


// View controller //

import UIKit


class HomeViewController: UIViewController {

    @IBAction func sendTapped(_ sender: UIButton) {

        DispatchQueue.global().async() {

            var request = URLRequest(url: URL(string: "https://www.MyApp.com/file.php")!)

            request.httpMethod = "POST"

            let to = "[email protected]"

            let sub = "Just testing..."

            let msg = "How are you doing?"

            let from = "George H. Aniston <[email protected]>"

            let postString = "a=\(to)&b=\(sub)&c=\(msg)&d=\(from)"

            request.httpBody = postString.data(using: .utf8)

            let task = URLSession.shared.dataTask(with: request) { data, response, error in

                guard let data = data, error == nil else {

                    print("error=\(String(describing: error))")

                    return

                }

                

                if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {

                    print("statusCode should be 200, but is \(httpStatus.statusCode)")

                    print("response = \(String(describing: response))")

                }

                

                let responseString = String(data: data, encoding: .utf8)

                print("responseString = \(String(describing: responseString))")

            }

            task.resume()

        }

    }

}


// file.php //

<?php


$to = $_POST['a'];

$sub = $_POST['b'];

$msg = $_POST['c'];

$from = $_POST['d'];


// use wordwrap() if lines are longer than 70 characters

$msg = wordwrap($msg,70);


$headers = 'From: '.$from."\r\n".

'Reply-To: '.$from."\r\n" .

'X-Mailer: PHP/' . phpversion();


// send email

mail($to, $sub, $msg, $headers);

?>



查看完整回答
反對 回復 2023-09-08
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號