看七牛api看到晕了。urlsafebase64、hmacsha1等用于生产token的代码都找好了。post过去,居然没有返回。搞了几天了。精神已经崩毁。求解救。
NSString* AccessKey = @"MY_ACCESS_KEY";
NSString*SecretKey = @"MY_SECRET_KEY";
NSString*host=@"rsf.qbox.me";
NSURL*quote=[NSURL URLWithString: @"/list"];
NSString*signingStr = [[NSString stringWithFormat:@"%@",quote] stringByAppendingString:@"\n"] ;
NSString*sign=[signingStr HmacSha1WithSecret:SecretKey];
NSString*accesstoken=[[AccessKey stringByAppendingString:@":"]stringByAppendingString:sign];
NSLog(@"accesstoken %@",accesstoken);
NSString*token=[@"QBox " stringByAppendingString: accesstoken];
NSString*URL=[host stringByAppendingString:@"/list"];
NSLog(@"%@",URL);
NSLog(@"url:%@ token:%@",URL,token);
NSURL *url = [NSURL URLWithString:URL];
//请求初始化,可以在这针对缓存,超时做出一些设置
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:10];
/* NSString *post = @"bucket=homlau";
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
[request setHTTPBody:postData];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
*/
[request setHTTPMethod:@"POST"];
[request setValue:host forHTTPHeaderField:@"Host"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setValue:token forHTTPHeaderField:@"Authorization"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString*str6=[[NSString alloc]initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@",str6);
list操作本来就应该是服务端进行执行的,为什么一定要客户端进行执行,即使list在客户端执行,list操作所需要的管理凭证其实也是可以服务端生成的;如果post请求没有返回结果,能否抓包贴一下post请求的完整http request(包括header),以及七牛这边返回的response。