Objective c Bit.ly API目标C检索访问令牌
我有一个简短的问题 我希望用户输入用户名(电子邮件)和密码,并希望从bit.ly api获取访问令牌 到目前为止,我试过:Objective c Bit.ly API目标C检索访问令牌,objective-c,nsurlrequest,bit.ly,Objective C,Nsurlrequest,Bit.ly,我有一个简短的问题 我希望用户输入用户名(电子邮件)和密码,并希望从bit.ly api获取访问令牌 到目前为止,我试过: NSString *authStr = [NSString stringWithFormat:@"%@:%@", @"username", @"password"]; NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding]; NSString *authValue = [NSString str
NSString *authStr = [NSString stringWithFormat:@"%@:%@", @"username", @"password"];
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64Encoding]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
然而,这不起作用
我需要的是让curl命令在目标c中运行:
curl -u "username:password" -X POST "https://api-ssl.bitly.com/oauth/access_token"
我知道我可以将方法设置为POST,但我不确定如何设置用户名:密码:|
我也试过使用
curl -u "CLIENT_ID:CLIENT_SECRET" -d "grant_type=password" -d "username=USERNAME" \
-d "password=PASSWORD" https://api-ssl.bitly.com/oauth/access_token
但是我仍然不知道ti如何设置客户端id和客户端机密的输入
关于如何将这些信息设置到请求中的任何帮助都会对我有很大帮助
杰克诚然,像AFNetworking这样的东西确实让使用NSURLConnection之类的工具变得更容易,但是如果你是从头开始做的,你就很接近了
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://api-ssl.bitly.com/oauth/access_token"]];
资源所有者凭据授予的终结点。这将获得访问API其余部分所需的访问令牌
流程中最棘手的部分是“授权”标题
然后打开NSURLConnection并观察3种重要的委托方法
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
您将希望实现:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
资料来源:我为iPhone编写了Bitly应用程序。希望这有帮助。如果您对API或上述示例有任何疑问,请告诉我。好主意!我让它以不同的方式工作,接近你的;)使用用户凭据。现在一切正常
[request setHTTPMethod:@"POST"];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection