NSURLSession devuelve una respuesta diferente a la del browser, ¿por qué?

Cualquier idea de por qué NSURLSession devuelve esta respuesta:

El tipo de autorización que proporcionó no es compatible. Solo son compatibles Basic y OAuth.

 let username = "8r6nibK8Pe28WFhjTX1gGb1Rhhhc7xM02v7XKRPedL4" let password = "8r6nibK8Pe28WFhjTX1gGb1Rhhhc7xM02v7XKRPedL4" let loginString = NSString(format: "%@:%@", username, password) let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)! let base64LoginString = loginData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) let config = NSURLSessionConfiguration.defaultSessionConfiguration() let authString = "Basic \(base64LoginString)" config.HTTPAdditionalHeaders = ["Authorization" : authString] let url = NSURL(string: "https://api.datamarket.azure.com/Bing/Search/Image?$format=json&Query='Rambo'+'Oscar'") let request = NSMutableURLRequest(URL: url!) request.HTTPMethod = "POST" let a = NSURLSession(configuration: config).dataTaskWithRequest(request, completionHandler: {data, urlResponse, error in if data != nil { let str = NSString(data: data!, encoding: NSUTF8StringEncoding) print(str) } else { _ = 7 } }) a.resume() 

El browser devuelve una respuesta diferente con información significativa de la image. Y estoy usando la authentication básica para enviar la request.

Probablemente el problema sea la opción: .Encoding64CharacterLineLength . tratar:

 let base64LoginString = loginData.base64EncodedStringWithOptions([]) 

Para investigar, usa Charles Proxy para ver la diferencia en las requestes. – zaph hace 10 minutos