Публикация данных на сервер с помощью SwiftIOS

Программируем под IOS
Ответить
Anonymous
 Публикация данных на сервер с помощью Swift

Сообщение Anonymous »

В Swift я сталкиваюсь с этой проблемой уже несколько дней и не знаю, какую ошибку я начинаю, это мой viewcontroller.swift

Код: Выделить всё

import UIKit
import Foundation
var otp=0

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate,UITextFieldDelegate
,HomeModelProtocol{

@IBOutlet weak var nameField: UITextField!

@IBOutlet weak var dobField: UITextField!

@IBOutlet weak var genderField: UITextField!

@IBOutlet weak var phoneField: UITextField!

@IBOutlet weak var emailField: UITextField!

//Properties

var feedItems: NSArray = NSArray()
var selectedLocation : LocationModel = LocationModel()

@IBOutlet weak var listTableView: UITableView!

override func viewDidLoad()
{
super.viewDidLoad()

//set delegates and initialize homeModel

//self.listTableView.delegate = self
//self.listTableView.dataSource = self

let homeModel = HomeModel()
homeModel.delegate = self as HomeModelProtocol
homeModel.downloadItems()

/* do
{
self.dobField.delegate = self
}
catch {
print("empty")
}
do
{
self.emailField.delegate = self
}
catch{
print("Empty")
}
do{   self.nameField.delegate = self
}
catch{

print("Empty")
}
do{

self.genderField.delegate = self
}
catch{
print("Empty")
}

do
{
self.phoneField.delegate = self
}
catch{
print("Empty")

}*/
}

func itemsDownloaded(items: NSArray)
{

feedItems = items
//self.listTableView.reloadData()
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
// Return the number of feed items
return feedItems.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) ->  UITableViewCell
{

// Retrieve cell
let cellIdentifier: String = "BasicCell"
let myCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
// Get the location to be shown
let item: LocationModel = feedItems[indexPath.row] as! LocationModel
// Get references to labels of cell
myCell.textLabel!.text = item.countryname

return myCell
}

@IBAction func onPostTapped2(_ sender: Any)

{

/*let parameters = ["name": "Lakshmi ILLe", "dob": "1234567890","gender": "Male","email": "Laksmhi@gmail.com","password":"iamille","contact": "1234567890"]*/
/*let parameters = "name=ALoke Nath"
guard let url = URL(string: "http://192.168.85.115/assignment5/public/dataInsert") else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"

request.addValue("application/json", forHTTPHeaderField: "Content-Type")

guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else { return }
request.httpBody = httpBody

let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}

if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {
print(error)
}
}

}.resume()
*/

let name = nameField.text!
let dob = dobField.text!
let gender = genderField.text!
let phone = phoneField.text!
let email = emailField.text!
let password=phoneField.text!
let contact = phoneField.text!
let countryId=2
let data = Data()
let headers = [
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache"
]

print(headers)
let postData = NSMutableData(data: ("name="+String(name)).data(using: String.Encoding.utf8)!)

postData.append(("&dob="+String(dob)).data(using: String.Encoding.utf8)!)

postData.append(("&gender="+String(gender)).data(using: String.Encoding.utf8)!)
postData.append(("&email="+String(email)).data(using: String.Encoding.utf8)!)
postData.append(("&password="+String(phone)).data(using: String.Encoding.utf8)!)
postData.append(("&contact="+String(phone)).data(using: String.Encoding.utf8)!)
postData.append(("&countryId=2").data(using: String.Encoding.utf8)!)

print(postData)
let requestnew = NSMutableURLRequest(url: NSURL(string: "http://192.168.85.115/assignment5/public/dataInsert")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
requestnew.httpMethod = "POST"
requestnew.allHTTPHeaderFields = headers
requestnew.httpBody = postData as Data

print(requestnew.httpBody!)

let sessionnew = URLSession.shared
let dataTasknew = sessionnew.dataTask(with: requestnew as URLRequest, completionHandler: { (data, responsenew, errornew) ->  Void in
if (errornew != nil) {
print(errornew!)
} else {
let httpResponsenew = responsenew as? HTTPURLResponse
print(httpResponsenew!)
//print(data!)
}

})

let A: UInt32 = 100000
let B: UInt32 = 999999
otp  = Int(arc4random_uniform(B - A + 1) + A)
print(otp)

dataTasknew.resume()

}

@IBOutlet weak var otpField: UITextField!

@IBAction func Otptapped(_ sender: Any) {
print(otp)
let otp2=Int(otpField.text!)

print(otp2!)

if otp2==otp{
print("Verified")
}
else{
print("Recheck otp")
}

}

override func touchesBegan(_ touches: Set, with event: UIEvent?) {
self.view.endEditing(true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return(true)
}

}
При попытке отправить данные на сервер, расположенный по URL-адресу, я постоянно получаю эти ошибки, которые для меня являются бредом

в первой части я распечатал заголовок и добавленные почтовые данные
но, наконец, когда часть ответа выдает мне вещь laravel_session, которая мне непонятна

// Этот заголовок

Код: Выделить всё

["cache-control": "no-cache", "content-type": "application/x-www-form-urlencoded"]
//Это почтовые данные
104 байта
//это otp не требуется и не отправляется
//Это ответ

Код: Выделить всё

 { URL: http://192.168.85.115/assignment5/public/dataInsert } { status code: 400, headers {
"Cache-Control" = "no-cache";
Connection = close;
"Content-Type" = "application/json";
Date = "Mon, 02 Apr 2018 11:48:01 GMT";
Server = "Apache/2.4.29 (Win32) OpenSSL/1.0.2n PHP/5.6.33";
"Set-Cookie" = "laravel_session=eyJpdiI6IldEdFFscW1WcTRDcGdTZDBHcUxuSlE9PSIsInZhbHVlIjoiVDBwRkl4b2tISm5CbEdLQkJOdTZOYytzMFRIVWZRK1QyVXRRWkp1OVhuZkJCNXQxODlwTkp3S1lzNmpjaFc0QjlHT2R1dkFVZXdCd1B1MWFINDVmeHc9PSIsIm1hYyI6IjI5OTE3MWNjMzJjYjNiZDcxZTE1Mjc0OGE5OGY5ZGZhMjQwNTI2NmVlOWEwNTA4NDg2MTk2MjM5YjBkNjdjN2QifQ%3D%3D; expires=Mon, 02-Apr-2018 13:48:01 GMT; Max-Age=7200; path=/; httponly";
"Transfer-Encoding" = Identity;
"X-Powered-By" = "PHP/5.6.33";
} }

13819 bytes
Data downloaded
13819 bytes
Xcode: 9.0
Swift: 4.0

Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/496 ... sing-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»