APIから多くのリクエストを行うアプリケーションを作っています。だから、私はコードを何度もコピーして、何度も繰り返したいとは思わない。私はコードをもっと効率的に再利用する方法を知りましたか?たぶん拡張機能付き? これは私のコードでは、知っている:JSON HTTPリクエストヘッダーを再利用する方法を短くする
func apiRequest() {
let config = URLSessionConfiguration.default
let username = "****"
let password = "****"
let loginString = String(format: "%@:%@", username, password)
let userPasswordData = loginString.data(using: String.Encoding.utf8)
let base64EncodedCredential = userPasswordData?.base64EncodedString()
let authString = "Basic " + (base64EncodedCredential)!
print(authString)
config.httpAdditionalHeaders = ["Authorization" : authString]
let session = URLSession(configuration: config)
var running = false
let urlProjects = NSURL(string: "https://start.jamespro.nl/v4/api/json/projects/?limit=10")
let task = session.dataTask(with: urlProjects! as URL) {
(data, response, error) in
if let taskHeader = response as? HTTPURLResponse {
print(taskHeader.statusCode)
}
if error != nil {
print("There is an error!!!")
print(error)
} else {
if let content = data {
do {
let dictionary = try JSONSerialization.jsonObject(with: content) as! [String:Any]
print(dictionary)
if let items = dictionary["items"] as? [[String:Any]] {
for item in items {
if let description = item["Description"] as? String {
self.projectNaam.append(description)
}
if let id = item["Id"] as? String {
self.projectId.append(id)
}
if let companyId = item["CompanyId"] as? String {
self.companyId.append(companyId)
}
}
}
self.apiRequestCompani()
}
catch {
print("Error: Could not get any data")
}
}
}
running = false
}
running = true
task.resume()
while running {
print("waiting...")
sleep(1)
}
}
反応に感謝します。はい、私はそれを得るが、私はそれを達成することができなかったので、あなたはおそらく私にそれを行う方法の例を与えることができますか?ありがとう –
@ R.H私は私の答えを編集します。彼自身のプロジェクトのコードをチェックすることができませんでしたか、それが動作するかどうかを確認してください – ppinho
彼はありがとうBro、それは私をたくさん助けてくれました –