Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios OAConsumer API在接收数据时出错_Ios_Objective C_Oauth_Google Oauth - Fatal编程技术网

Ios OAConsumer API在接收数据时出错

Ios OAConsumer API在接收数据时出错,ios,objective-c,oauth,google-oauth,Ios,Objective C,Oauth,Google Oauth,我正在尝试使用OAConsumer API获取数据。我尝试了下面的代码,这给我带来了一个错误 -(void)performQuery { OAConsumer *consumer = [[OAConsumer alloc] initWithKey:OAUTH_KEY secret:OAUTH_SECRET]; NSURL *url = [NSURL URLWithString:@"https

我正在尝试使用OAConsumer API获取数据。我尝试了下面的代码,这给我带来了一个错误

-(void)performQuery
{
 OAConsumer *consumer = [[OAConsumer alloc] initWithKey:OAUTH_KEY
                                                  secret:OAUTH_SECRET];

 NSURL *url = [NSURL URLWithString:@"https://api.semantics3.com/v1/products"];

 OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
                                                               consumer:consumer
                                                                  token:nil   
                                                                  realm:nil  
                                                      signatureProvider:nil]; // use the default method, HMAC-SHA1

  [request setHTTPMethod:@"GET"];
  [consumer release];


  OARequestParameter * qParam = [[OARequestParameter alloc] initWithName:@"q" value:@"{\"cat_id\":13658,\"model\":\"Satellite\"}"];


 NSArray *params = [NSArray arrayWithObjects:qParam, nil];
 [qParam release];

 [request setParameters:params];
 OADataFetcher *fetcher = [[OADataFetcher alloc] init];

 [fetcher fetchDataWithRequest:request
                     delegate:self
            didFinishSelector:@selector(requestDidFinishWithData:)
              didFailSelector:@selector(requestDidFailWithError:)];

  [request release];
}

错误如下:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[OAServiceTicket bytes]: unrecognized selector sent to instance 0x1ed65bf0'
错误发生在这一行: **NSString响应=[[NSString alloc]initWithData:data 编码:NSUTF8StringEncoding]


你知道我在这里干什么吗?

请看这张票是否成功,像这样

 - (void)fetchingVideoTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data{
if(ticket.didSucceed)
{
  your code...
 }

在您的情况下,请求似乎成功了,但没有生成响应,表明您没有包含该请求所需的所有参数,我在尝试连接Vimeo时也遇到了相同的问题,但在我将回调参数添加到请求后,连接成功并生成响应。检查是否已添加所有参数。

请检查票证是否成功,如下所示

 - (void)fetchingVideoTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data{
if(ticket.didSucceed)
{
  your code...
 }

在您的情况下,请求似乎成功了,但没有生成响应,表明您没有包含该请求所需的所有参数,我在尝试连接Vimeo时也遇到了相同的问题,但在我将回调参数添加到请求后,连接成功并生成响应。检查是否已添加所有参数。

当NSData实际上是一个OAServiceTicket对象时,您正试图将其作为NSData读取

OAServiceTicket对象具有以下特性:

request = [aRequest retain];
response = [aResponse retain];
data = [aData retain];
didSucceed = success;
因此,您的代表必须如下所示:

- (void)requestDidFinishWithData:(OAServiceTicket *)ticket {

    NSString *response= [[NSString alloc] initWithData:ticket.data
                                              encoding:NSUTF8StringEncoding];

    //here do what you want with the response, I use SBJson to parse it.

    NSLog(@"Request success!%@", response);
    [response release];

}

对我来说很有用。

当NSData实际上是一个OAServiceTicket对象时,您试图将其作为NSData读取

OAServiceTicket对象具有以下特性:

request = [aRequest retain];
response = [aResponse retain];
data = [aData retain];
didSucceed = success;
因此,您的代表必须如下所示:

- (void)requestDidFinishWithData:(OAServiceTicket *)ticket {

    NSString *response= [[NSString alloc] initWithData:ticket.data
                                              encoding:NSUTF8StringEncoding];

    //here do what you want with the response, I use SBJson to parse it.

    NSLog(@"Request success!%@", response);
    [response release];

}

对我有效。

我也有同样的问题。显然,OaserviceKit对象已经不存在了。到目前为止,我还没有找到这个项目的ARCIOS版本,也许所有非ARC的东西都会引起一些问题。你修好了吗?我也有同样的问题。显然,OaserviceKit对象已经不存在了。到目前为止,我还没有找到这个项目的ARCIOS版本,也许所有非ARC的东西都会引起一些问题。你修好了吗?