これが私ができるサンプルです:
-(IBAction)getToken:(id)sender {
NSString *clientSecret = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)CLIENT_SECRETCODE,
NULL,
(CFStringRef) @"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
NSMutableString* authHeader = [NSMutableString stringWithString:@"client_id="];
[authHeader appendString:CLIENT_ID];
[authHeader appendString:@"&client_secret="];
[authHeader appendString:clientSecret];
[authHeader appendString:@"&grant_type=client_credentials&scope=http://api.microsofttranslator.com"];
NSMutableURLRequest *request =[NSMutableURLRequest
requestWithURL:[NSURL URLWithString:TOKEN_STRING]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
[request addValue:@"application/x-www-form-urlencoded"
forHTTPHeaderField:@"Content-Type"];
const char *bytes = [authHeader UTF8String];
[request setHTTPBody:[NSData dataWithBytes:bytes length:strlen(bytes)]];
NSURLResponse* response;
NSError* error;
NSData* data = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error];
if (data != nil) {
NSString* contents = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSString *formattedContents = [contents stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
Microsoft Translationに適合していても、他のサービスに適合させるのは難しいことではありません。ここでは、トークンは解析されず、コードは大まかなものであり、自動参照カウントを使用しているため、構成の後に自動解放が必要になる場合があることに注意してください。