Ale*_*lex 7 authentication objective-c httpwebrequest lighthouse
我将如何在objective-c中复制这个
curl -u rick@email.com:mypassword http://foo.lighthouseapp.com/projects.xml
Run Code Online (Sandbox Code Playgroud)
我一直在玩ASIHTTPRequest库,但似乎无法搞清楚,
显然发送我的请求会返回一个身份验证错误:
-(void)submit:(id)sender {
NSURL *url = [NSURL URLWithString:@"http://ldn.lighthouseapp.com/projects/63254-londonist-20/tickets.xml"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
NSLog(@"response:%@",response);
} else {
NSLog(@"error:%@",error);
}
}
Run Code Online (Sandbox Code Playgroud)
这可能很简单,我只是缺少一些非常重要的东西
Aar*_*ers 13
[request addRequestHeader:@"Authorization"
value:[NSString stringWithFormat:@"Basic %@",
[ASIHTTPRequest base64forData:
[[NSString stringWithFormat:@"%@:%@", theUsername, thePassword]
dataUsingEncoding:NSUTF8StringEncoding]]]];
Run Code Online (Sandbox Code Playgroud)
小智 10
如果不想使用任何框架(比如我),您可以采用下一种方式:
NSURL *url = [NSURL URLWithString: @"https://api.github.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSString *authStr = [NSString stringWithFormat:@"%@:%@", login, password];
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:0]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithRequest:request
completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (!error) {
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"%@",responseDictionary);
}
}] resume];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10522 次 |
| 最近记录: |