为什么NSURLSession比浏览器返回不同的响应呢?
任何想法为什么NSURLSession
返回这个响应:
您提供的授权types不受支持。 只支持Basic和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()
浏览器返回不同的响应与有意义的图像信 而我正在使用基本身份validation发送请求。
问题可能是选项: .Encoding64CharacterLineLength
。 尝试:
let base64LoginString = loginData.base64EncodedStringWithOptions([])
调查使用Charles Proxy来查看请求中的差异。 – zaph 10分钟前