Je travaille actuellement sur une petite application où j'ai besoin de faire des connexions à certains sites Web afin d'obtenir des informations.NSURLSession.sharedSession(). DataTaskWithRequest ne fonctionne pas
Voici la fonction que j'ai faite, qui satisfait mes besoins 90% du temps.
func requestFunctionOn(url: String) {
print(#function + " url: \(url)")
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "POST"
NSURLSession.sharedSession().dataTaskWithRequest(request,
completionHandler: {
data, response, error in
if error != nil {
print("error=\(error)")
return
}
print("RSC = \((response as! NSHTTPURLResponse).statusCode)")
............. doing some more useful work .............
}).resume()
}
Il ya des moments où j'ai rencontré un problème, sans que je sache pourquoi. Par exemple ci-dessous sont des traces dans la console de débogage d'un cas de travail (RSC = 200) et d'un cas de travail non (RSC = 404):
fonctionne comme prévu:
requestFunctionOn url: http://abcnews.go.com
RSC = 200
(lldb)
ne fonctionne pas comme prévu:
requestFunctionOn url: http://www.bloomberg.com/asia
RSC = 404
(lldb)
Que puis-je faire pour que le second cas fonctionne? Où dois-je regarder?
Etes-vous en train d'écrire ou de recevoir? Essayez 'request.HTTPMethod =" GET "' –
J'essaie d'obtenir le contenu du site Web afin de l'analyser et de lire ce dont j'ai besoin. Comme je l'ai mentionné, cela fonctionne principalement. Dans le premier cas mentionné, je peux le faire. – Michel
@ Leo Dabus: Suite à votre idée, je viens de faire quelques tests. Voici le résultat: Lors de l'utilisation: request.HTTPMethod = "POST"; J'ai les effets mentionnés dans mon post. Lors de l'utilisation: request.HTTPMethod = "GET"; Ça marche. Lorsque vous supprimez simplement la ligne, cela fonctionne également. Je ne comprends pas très bien ce qui se passe. Peut-être que vous pouvez expliquer? Merci pour le conseil dans tous les cas. – Michel