2011-10-19 29 views
0

我正在使用OAuthConsumer框架/帮助程序类来交流REST风格的Web服务。我已经解决了OAuth跳舞:-)但是我有一些需要数组参数的函数。使用OAuthConsumer将NSArray参数发送到REST风格的web服务

我设置参数,使

OARequestParameter *p0 = [[OARequestParameter alloc] initWithName:@"key" 
                   value:@"value"]; 
NSArray *params = [NSArray arrayWithObjects:p0, nil]; 

OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url 
                   consumer: [MyOAUthAppDelegate sharedAppDelegate].consumer 
                    token:[MyOAUthAppDelegate sharedAppDelegate].accessToken // we don't have a Token yet 
                    realm:nil // our service provider doesn't specify a realm 
                 signatureProvider:[[OAHMAC_SHA1SignatureProvider alloc] init]]; // use the default method, HMAC-SHA1 

[request setHTTPMethod:@"POST"]; 

OADataFetcher *fetcher = [[OADataFetcher alloc] init]; // 

[fetcher fetchDataWithRequest:request 
        delegate:self 
      didFinishSelector:@selector(requestTokenTicket:didFinishRESTWithData:) 
       didFailSelector:@selector(requestTokenTicket:didFailTESTWithError:)]; 

但WS正在返回 “只接受阵列”。

我的规格说是这样的:

REST (POST parameters) 

params[xxx]= int 
params[yyy]= int 

我认为,这将是在PHP或Javascript很容易,但我不知道如何从iPhone发送请求数组参数,特别是使用OAuthConsumer对象:S

回答

0

我把它添加参数,像这样:

OARequestParameter *p0 = [[OARequestParameter alloc] initWithName:@"function" 
                   value:functionName]; 

OARequestParameter *p1 = [[OARequestParameter alloc] initWithName:@"params[c_id]" 
                   value:@"2"]; 
OARequestParameter *p2 = [[OARequestParameter alloc] initWithName:@"params[a_id]" 
                   value:@"1"]; 
NSArray *params = [NSArray arrayWithObjects:p0, p1, p2, nil]; 
[request setParameters:params];