2014-03-24 70 views
0

我正在使用ASIHTTPRequest访问基于Web的API并需要为应用程序认证设置标头。请注意,这不是它在API级别的服务器级认证。我试过每一件事情我可以在www.stackoverflow.com找到和大部分网络上的答案,以及那些在这里告诉我用类似:在ASIHTTPRequest中设置标头

[request addRequestHeader:@"username" value:@"asdf"];

这并不适用于工作我。谁建我使用的API的家伙告诉我,我需要设置标题为:

Authorization: TRUEREST username=PersonName&password=pass&apikey=dfiu6aewruif3Bismillah4Rah3anArahimiImi22MyDad 

所以我试过如下:

NSURL *url = [NSURL URLWithString:@"http://ifish-uk.co.uk/rest_users/login.json"]; 
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 

[request addRequestHeader:@"username" value:@"MyUser"]; 
[request addRequestHeader:@"password" value:@"MyPass"]; 
[request addRequestHeader:@"apikey" value:@"dfiu6aewruif3Bismillah4Rah3anArahimiImi22MyDad"]; 

但它没有工作...我甚至尝试设置请求类型GET因为开发商告诉我,我应该这样做:

[request setRequestMethod:@"GET"]; 

这并没有工作... API开发人员告诉我,他是由该模块FOL低:

POST /rest_catches/add.json HTTP/1.1 
Host: ifish-uk.co.uk 
Authorization: TRUEREST  username=MyUser&password=MyPass&apikey=dfiu6aewruif3Bismillah4Rah3anArahimiImi22MyDad 
Cache-Control: no-cache 

任何帮助将不胜感激。

回答

2

您应该只添加一个标头是授权无需为每个字段添加单独的标头(use,pass等)。

填写您的具体数值并发送。

[request addRequestHeader:@"Authorization" value:@"TRUEREST username=PersonName&password=pass&apikey=dfiu6aewruif3Bismillah4Rah3anArahimiImi22MyDad"]; 
+0

谢谢这么多...它的工作就像一个魅力...干杯 –

-1

你尝试加入:

[request setRequestMethod:@"POST"]; 

+0

不,但我认为ASIHTTPRequest是默认的POST ...让我试试这个。 –

+0

试过了...仍然没有:/ –

+0

正确地阅读问题 –