2016-08-12 132 views
1

我试图非常简单地使用Bing API加载数据。下面是使用AlamoFire我的代码:使用bing搜索API

let headers = [ 
      "Ocp-Apim-Subscription-Key": "mykeyishere" 
     ] 

    request(
     .GET, 
     "https://api.cognitive.microsoft.com/bing/v5.0/search?q=nba&mkt=en-us&safesearch=Moderate", 
     parameters: headers, 
     encoding: .URL 
     ).responseJSON { (request, response, json, error) -> Void in 
      println(error) 
      println(json) 

     } 

出于某种原因,我不断收到此错误:

​​
+0

我认为参数是参数,如:q = nba&mkt = en-us&safesearch = Moderate,您需要设置标题以使用标题字典。尝试一下。 –

回答

0

参数的参数,如:Q = NBA & MKT = EN-US &安全搜索=中等 ,您需要设置标题才能使用标题字典。

我使用Alamofire,但它是一样的。

let headers = [ 
    "Ocp-Apim-Subscription-Key": "laksjgakaask13876tjhgbd" 
] 

var dic = [String:AnyObject]() 

dic["q"] = "NBA" as AnyObject? 
dic["mkt"] = "en-us" as AnyObject? 
dic["safesearch"] = "Moderate" as AnyObject? 

Alamofire.request("https://api.cognitive.microsoft.com/bing/v5.0/images/search", method: .get, parameters: dic, encoding: URLEncoding.default, headers: headers).validate().responseJSON { (response:DataResponse<Any>) in 


    switch(response.result) { 
    case .success(_): 

     if let JSON = response.result.value { 

      print(JSON) 

      //take URLs from the json into an ImagesURLsArray 

     } else { 
      print("error with response.result.value")} 

    case .failure(_): 

     if let errorNum = response.response?.statusCode { 
      let stringErrorNum = "{\"error\": \(errorNum)}" 
      print(stringErrorNum) 

     } 

    } 

}