Подтвердить что ты не робот

HTTP-запрос в быстрой работе

Я пытаюсь узнать о работе с API в Swift. Как хороший первый тест, я решил, что попал в itunes API и вернул бы некоторые результаты поиска. Я на игровой площадке, используя следующий код. Я не получаю никаких ошибок, но мой println ничего не выводит. Кто-нибудь знает, что случилось?

Спасибо!

import UIKit
import XCPlayground

XCPSetExecutionShouldContinueIndefinitely()


let url = NSURL(string: "https://itunes.apple.com/lookup?id=909253")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
    println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

task.resume()
4b9b3361

Ответ 1

Попробуйте добавить эту строку кода:

URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)

Ответ 2

Для Swift 3/Xcode 8.2.1 объединение двух ответов (rv1331, Wouter van Zuilen) дало наилучшие результаты без ошибок в Playground. Я использую пример Swift 3 REST:

http://mrgott.com/swift-programing/30-work-with-rest-api-in-swift-3-and-xcode-8-using-urlsession-and-jsonserialization

import PlaygroundSupport
import Foundation

PlaygroundPage.current.needsIndefiniteExecution = true
URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)

Ответ 3

Код Swift 3:

<!-- language: lang-c -->

import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true

Ответ 4

попробуйте следующую строку, и я думаю, она будет работать:

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

Ответ 5

Не уверен, почему вы не видите ошибку - я получаю следующее:

NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9807)

Вы можете проверить более эффективно с помощью httpbin.org - это отлично работает для меня:

let url = NSURL(string: "http://httpbin.org/get")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
    println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

task.resume()

Ответ 6

Мой ответ неправильный, это действительно только в беспроигрышном исполнении плей-игры. Тип сеанса не имеет значения.

Запуск в эту же проблему в последнее время и поиск решения.

Ошибка вызвана использованием URLSession.shared(), который, по-видимому, не разрешен в песочнице игровой площадки.

Создайте и используйте свой собственный эфемерный сеанс URL вместо:

let session = URLSession(configuration: URLSessionConfiguration.ephemeral)