2017-11-12 4 views
2

: Optional(["errors": <__NSSingleObjectArrayI 0x60c00000da70>({ code = invalid; field = q; message = "\"`date\" is not a recognized date/time format. Please provide an ISO 8601 date/time value, such as YYYY-MM-DD."; resource = Search; }), "documentation_url": https://developer.github.com/v3/search/, "message": Validation Failed]) 오류 - Github에서의 API 내가 <code>Swift</code>에 다음 컬을 번역하고 있지만, 놀이터에서 실행할 때 불행하게도 나는 다음과 같은 오류를 얻고있다

은 다음과 같다 컬,. 터미널을 실행할 때 작동합니다.

cURL
let sessionConfig = URLSessionConfiguration.default 

    let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil) 

    guard var urlComponent = URLComponents(string: "https://api.github.com/search/repositories") else { return } 
    let items = [ 
     URLQueryItem(name: "q", value: "created:>`date -v-1m '+%Y-%m-%d'`"), 
     URLQueryItem(name: "sort", value: "stars"), 
     URLQueryItem(name: "order", value: "desc") 
    ] 

    urlComponent.queryItems = items 
    guard let url = urlComponent.url else { return } 

    var request = URLRequest(url: url) 
    request.httpMethod = "GET" 


    // Headers 
    request.addValue("application/json", forHTTPHeaderField: "Accept") 
    request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") 

    // Form URL-Encoded Body 


    /* Start a new Task */ 
    let task = session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: Error?) -> Void in 
     if (error == nil) { 
      // Success 
      let statusCode = (response as! HTTPURLResponse).statusCode 
      do { 
       let json = try JSONSerialization.jsonObject(with: data!, options: []) as? [String: Any] 
       print(json) 
      } catch { 
       print(error) 
      } 
     } 
     else { 
      // Failure 
      print("URL Session Task Failed: %@", error!.localizedDescription); 
     } 
    }) 
    task.resume() 
    session.finishTasksAndInvalidate() 

답변

0

는, 터미널에서 스크립트를 실행 따라서는 q 매개 변수로 날짜 -1m를 전달합니다

curl -G https://api.github.com/search/repositories --data-urlencode "q=created:>`date -v-1m '+%Y-%m-%d'`" --data-urlencode "sort=stars" --data-urlencode "order=desc" -H "Accept: application/json"

내 요청입니다. 예를 들어이 응답 날짜가 2017-11-13 일 경우 date -v-1m '+%Y-%m-%d'2017-10-13