如何在调用Web服务时传递Capcha安全性?

时间:2016-09-05 10:01:00

标签: ios nsurlsession nsurlsessiondownloadtask

你们中的许多人都像我的问题一样愚蠢。但我真的遇到了这个问题。

当我调用Web服务下载音频文件时。它返回一个html页面内容,要求我通过Capcha安全性。检查下面的截图。

enter image description here

我使用以下代码下载文件

NSString *strPathComponent = @"http://www.tipoff.tips/app/development/tipoffaudio/1472898051.caf";

NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", docDirPath , [strPathComponent lastPathComponent]]
;
NSURL *url =[NSURL URLWithString:[strPathComponent
                                  stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
__block BOOL isDownloaded = false;
NSURLSession *session = [NSURLSession  sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    if (error) {
        NSLog(@"error %@",error);
    }
    else{
        NSLog(@"data of %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
        NSLog(@"data of size %lu write at %@",[data length],filePath);
        if([[NSFileManager defaultManager] createFileAtPath:filePath contents:data attributes:nil]){
            NSLog(@"file write at %@",filePath);
        }
        else{

        }
    }
    isDownloaded = true;
}];
[task resume];

这比较早。但现在不是。我还设置了所有运输安全

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

通常它应该返回我的CAF文件的内容,但它返回我看起来像上面的屏幕截图的HTML联系人。

0 个答案:

没有答案