0
私はうまく動作するphpのwebapiを持っています。今では私のアプリでそれを使いたいと思っています。 Webapiは認証にクッキーを使用します。だから初めて私はログインタスクを作成し、応答からクッキーを保存します。タスクの保存迅速なクッキーのurlsession要求
: データダウンロードタスク:
function testLogin(){
let loginUrlstring = ".../webapi/login.php"
let passwordom = ""
let emailem = ""
guard let url = URL(string: loginUrlstring) else { return }
let postString = "email=" + emailem + "&pw=" + passwordom
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = "POST"
urlRequest.httpShouldHandleCookies = true
urlRequest.httpBody = postString.data(using: String.Encoding.utf8)
let session = URLSession.shared
let task = session.dataTask(with: urlRequest) { (data, response, error) in
self.saveCookies(response: response)
print("cookies mentve")
print(response?.url)
}
task.resume()}
は今、私はいくつかのデータを取得するためにクッキーを使用して、要求を作成したいしたい
let probaUrl = "http://.../data.php"
let postString = "table=SomeTableName&key=someFieldID&value=20"
guard let url = URL(string: probaUrl) else { return }
loadCookies()
let cookiesArray = HTTPCookieStorage.shared.cookies
let headers = HTTPCookie.requestHeaderFields(with: cookiesArray!)
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = "GET"//"POST"
urlRequest.httpShouldHandleCookies = true
urlRequest.httpBody = postString.data(using: String.Encoding.utf8)
urlRequest.allHTTPHeaderFields = headers
var session = URLSession(configuration: .default)
session.configuration.httpCookieAcceptPolicy = .always
session.configuration.httpAdditionalHeaders = headers
let task = session.dataTask(with: urlRequest) { (data, response, error) in
print(response)
print(data)
if let data2 = data, let utf8Text = String(data: data2, encoding: .utf8) {
print("Data: \(utf8Text)") // original server data as UTF8 string
}
}
task.resume()
をそして、それは言う:エラーで完成 - コード:-1001 印刷データ--- nil 私の間違いはどこですか?あなたは私が意味する 間違っているかを理解するために起こっている正確なエラーを印刷する必要があります