swift2 - Authentication keeps failing with Alamofire -


i migrated project swift 2.0 , got lots of errors. fixed of them, 1 keeps making error.

i calling bing search api using alamofire below , error saying "error domain=nscocoaerrordomain code=3840 "invalid value around character 0." userinfo={nsdebugdescription=invalid value around character 0.}"

i understand means authentication fails. advise me on how fix this?

let percentedkeyword = searchkey.stringbyaddingpercentencodingwithallowedcharacters(nscharacterset.urlqueryallowedcharacterset()) let ulrstr: string = "https://api.datamarket.azure.com/bing/search/v1/news" + "? query=" + percentedkeyword! + "&$top=10&$format=json" let credentials = ":\(bingapikey)" let plaintext = credentials.datausingencoding(nsutf8stringencoding, allowlossyconversion: false) let base64 = plaintext!.base64encodedstringwithoptions(nsdatabase64encodingoptions(rawvalue: 0))  let headers = ["authorization": "basic \(base64)"]  alamofire.request(.get, urlstr, headers: headers)     .responsejson { request, response, data in         switch data {         case result.success(let receivedvalue):             self.bingjson = json(receivedvalue)         case result.failure(_, let error nserror):             print(error)         default:             print("do nothing")         } } 

xcode version 7.0 alamofire version 2.0.2

[update]

i tried urlstr("https://api.datamarket.azure.com/bing/search/news?query=%e4%b8%ad%e5%9b%bd&$top=10&$format=json") web browser. asked me type in user name , password, typed apikey password , kept user name blank following instruction microsoft doc

i got error:parameter: query not of type string

according stackoverflow, because keyword not percented, adding percent keyword string...

it turns out needed single quotation marks search key words.

let percentedkeyword = searchkey.stringbyaddingpercentencodingwithallowedcharacters(nscharacterset.urlqueryallowedcharacterset())         let urlstr: string = "https://api.datamarket.azure.com/bing/search/news" + "?query=" + "'" + percentedkeyword! + "'" + "&$top=10&$format=json"         let credentials = ":\(bingapikey)"         let plaintext = credentials.datausingencoding(nsutf8stringencoding, allowlossyconversion: false)         let base64 = plaintext!.base64encodedstringwithoptions(nsdatabase64encodingoptions(rawvalue: 0))          let headers = ["authorization": "basic \(base64)"]          alamofire.request(.get, urlstr, headers: headers)             .responsejson { request, response, data in                 switch data {                 case result.success(let receivedvalue):                     self.bingjson = json(receivedvalue)                 case result.failure(_, let error nserror):                     print(error)                 default:                     print("do nothing")                 }         }     } 

Comments

Popular posts from this blog

1111. appearing after print sequence - php -

java - WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/board/] in DispatcherServlet with name 'appServlet' -

Ruby on Rails, ActiveRecord, Postgres, UTF-8 and ASCII-8BIT encodings -