【问题标题】:Twitter API invalid URLRequestWithMethod using Swift使用 Swift 的 Twitter API 无效 URLRequestWithMethod
【发布时间】:2015-08-30 05:31:02
【问题描述】:

我正在尝试按照this 示例访问 home_timeline 请求。

但是,我不断收到以下错误:

'URLRequestWithMethod' 带有类型为'(String, URL: String, parameters: NSArray, error: inout NSError?)'的参数列表

func getHomeTimeLine(){
    var clientError:NSError?
    let params = []

    let request = Twitter.sharedInstance().APIClient.URLRequestWithMethod(
        "GET",
        URL: "https://api.twitter.com/1.1/statuses/home_timeline.json",
        parameters: params,
        error: &clientError)

    if request != nil {
        Twitter.sharedInstance().APIClient.sendTwitterRequest(request) {
                (response, data, connectionError) -> Void in
                if (connectionError == nil) {
                    var jsonError : NSError?
                    let json : AnyObject? =
                    NSJSONSerialization.JSONObjectWithData(data,
                        options: nil,
                        error: &jsonError)
                }
                else {
                    println("Error: \(connectionError)")
                }
        }
    }
    else {
        println("Error: \(clientError)")
    }

}

提前致谢。

【问题讨论】:

    标签: ios swift api twitter


    【解决方案1】:

    将 params 定义为字典并使用它。

    让参数:Dictionary = Dictionary()

    func getHomeTimeLine() {
        var clientError:NSError?
        let params: Dictionary = Dictionary<String, String>()
    
        let request: NSURLRequest! = Twitter.sharedInstance().APIClient.URLRequestWithMethod(
            "GET",
            URL: "https://api.twitter.com/1.1/statuses/home_timeline.json",
            parameters: params,
            error: &clientError)
    
        if request != nil {
            Twitter.sharedInstance().APIClient.sendTwitterRequest(request!) {
                (response, data, connectionError) -> Void in
                if (connectionError == nil) {
                    var jsonError : NSError?
                    let json : AnyObject? =
                    NSJSONSerialization.JSONObjectWithData(data!,
                        options: nil,
                        error: &jsonError)
    
                    // check for json data
                    if (json != nil) {
                        println("response = \(json)")
                    } else {
                        println("error loading json data = \(jsonError)")
                    }
                }
                else {
                    println("Error: \(connectionError)")
                }
            }
        }
        else {
            println("Error: \(clientError)")
        }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

      let request: NSURLRequest? = Twitter.sharedInstance().APIClient.URLRequestWithMethod("GET", URL: "https://api.twitter.com/1.1/statuses/user_timeline.json",
              parameters: ["screen_name" : username,
                  "count" : "20"] ,
              error: &clientError)
      

      【讨论】:

        【解决方案3】:

        实际上,显示“URL”的方法签名已更改为“URLString”,正确/更新的方法调用(在 Objective C 中)如下所示:

        NSDictionary *params = @{@"include_email": @"true", @"skip_status": @"true"};

        NSError *clientError;

        NSURLRequest *request = [client URLRequestWithMethod:@"GET" URLString:@"https://api.twitter.com/1.1/account/verify_credentials.json" 参数:params error:nil];

        希望这对某人有所帮助!

        【讨论】:

          猜你喜欢
          • 2015-03-29
          • 2017-01-22
          • 2016-11-27
          • 2016-05-24
          • 2023-02-16
          • 1970-01-01
          • 1970-01-01
          • 2015-02-13
          • 1970-01-01
          相关资源
          最近更新 更多