Curl,Asana&目标C.

时间:2013-06-20 22:38:03

标签: objective-c curl asana

我正在寻找构建一个简单的cocoa应用程序来在协作应用程序Asana中创建项目。

我需要提出卷曲请求,但我不确定如何处理它。

实施例(https://asana.com/developers/api-reference/projects):

curl -u <api_key>: https://app.asana.com/api/1.0/projects -d "name=Things to Buy" -d "notes=These are things we want to purchase." -d "workspace=14916"

关于如何运行或模仿“curl -u”命令的任何想法?

谢谢!

亚当

1 个答案:

答案 0 :(得分:3)

-u/--user选项代表Basic Authentication。它基本上为请求添加了Authorization HTTP标头,其用户名/密码以base64编码,例如Authorization: Basic Zm9vOmJhcg==

基本身份验证正是Asana API支持的身份验证方案之一:

  

Asana API支持两种独立的身份验证方案:OAuth 2.0和使用API​​密钥的HTTP基本身份验证。

在实践中,根据Asana docs,客户应该通过:

  

API密钥作为用户名,空密码

所以如果你想在普通的Objective-C中执行这样的请求,例如NSURLConnection,你需要做的就是自己创建这个Authorization标题,注意使用空密码。您应该可以轻松地执行此操作(请参阅此answer):

NSString *authStr = [NSString stringWithFormat:@"%@:", apiKey];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodingWithLineLength:80]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];

注意:base64编码是通过NSData等{{1}}类别实现的。

相关问题