как отправить HTTP пост-запрос и json получить значения обратно в php и swift - PullRequest
0 голосов
/ 13 июня 2019

Я хочу опубликовать ID по URL-адресу json в БД, но не могу опубликовать параметр в БД, поэтому сервер получает все данные из БД

Я попытался опубликовать ID в mysql, чтобы вернуть значение из БДиспользуя php, json http работает нормально в браузере, но быстро не отправляя параметр и не получая значений из базы данных

например, я посылаю идентификатор в php, запрос выведет имя emolyee на основе идентификатора, который я отправил вxcode out поставить нет данных

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    data_request("http://mallsruh.com/mydata/test.php")
}



func data_request(_ url:String)
{
    let url:NSURL = NSURL(string: url)!
    let session = URLSession.shared

    let request = NSMutableURLRequest(url: url as URL)
    request.httpMethod = "POST"

    let paramString = "ID=1"
    request.httpBody = paramString.data(using: String.Encoding.utf8)

    let task = session.dataTask(with: request as URLRequest) {
        (
        data, response, error) in

        guard let _:NSData = data as NSData?, let _:URLResponse = response, error == nil else {
            print("error")
            return
        }

        if let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
        {
            print(dataString)
        }
    }


    task.resume

в php файле

     $numQue=$_GET["ID"];

    $return_arr = array();

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

$selectation = "SELECT * FROM people where ID='$numQue'  ";

$selectationQuery = mysqli_query($conn, $selectation);

while ($data = mysqli_fetch_assoc($selectationQuery))
{
   $return_arr[] = $data;    
}

echo json_encode ($ return_arr);echo "Подключено успешно";

?>}

Я думаю, что код вообще не читает опубликованное значение

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

это ответ поддержки swift 5

AF.request("http://mallsruh.com/api/product/read_one.php", method: .get, parameters: ["id":a], encoding: URLEncoding.default, headers: ["id":a]).responseJSON { (response:DataResponse<Any>) in
        switch response.result {
        case let .success(value):
            print(value)
        case let .failure(error):
            print(error)
0 голосов
/ 14 июня 2019

Параметры выглядят неверно. Вам следует попробовать следующее:

let paramString = "ID=1"
 to
let paramString: [String: Any] = [
                                 "ID" = "1"
                                  ]

используйте Alamofire, это сетевая библиотека HTTP, это просто. ты можешь найти https://github.com/Alamofire/Alamofire

    let paramString:[String: Any] = [
                                      "ID" = 1
                                    ]
    Alamofire.request(.POST, "http://mallsruh.com/mydata/test.php", parameters: parameters, encoding: .JSON)
        .responseJSON { request, response, JSON, error in
            print(response)
            print(JSON)
            print(error)
        }
...