当前位置: 首页 > 知识库问答 >
问题:

如何在nsurlsession中传递必应搜索Ocp-Apim-Subscription-Key?

麹承
2023-03-14

到目前为止,我使用Azure Data Market“Bing Search”API在我的Objective C项目中执行图像搜索。

下面是执行搜索的部分代码:

{
        NSData *authData;
        NSString *authKey = @"<enter Subscription key here!>";
        authData = [[[NSString alloc] initWithFormat:@"%@:%@", authKey, authKey] dataUsingEncoding:NSUTF8StringEncoding];
        NSString *authValue = [[NSString alloc] initWithFormat:@"Basic %@", [self stringByEncodingInBase64:authData]];
        NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
        [config setHTTPAdditionalHeaders:@{@"Authorization": authValue}];

        // Timeout settings...
        config.timeoutIntervalForRequest = 6.0;
        config.timeoutIntervalForResource = 8.0;

        NSMutableCharacterSet * URLQueryPartAllowedCharacterSet;
        URLQueryPartAllowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy];
        [URLQueryPartAllowedCharacterSet removeCharactersInString:@"&+=?"];
        NSString * escapedValue = [searchKeys stringByAddingPercentEncodingWithAllowedCharacters:URLQueryPartAllowedCharacterSet];
        NSString * urlString = [[NSString alloc] initWithFormat:
            @"https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Image?Query='%@'&$top=20&$format=json", escapedValue];
        NSURL *JSONURL = [NSURL URLWithString:urlString];
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:JSONURL];
        NSURLSessionDataTask * dataTask =
        [[NSURLSession sessionWithConfiguration:config] dataTaskWithRequest:request completionHandler:^
        (NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {                                                                
         < PROCESS YOUR DATA HERE >    
         }];
        [dataTask resume];
     }

假设新密钥是qwerty12345,如果您要发布解决方案。

共有1个答案

尹晟
2023-03-14

Ocp-Apim-Subscription-Key应该在报头中传递。因此,将使用NSURLSessionConfiguration及其方法setHTTPAdditionalHeaders:

NSString *authKey = @"<enter NEW key>";
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
[config setHTTPAdditionalHeaders:@{@"Ocp-Apim-Subscription-Key": authKey}];
 类似资料:
  • 问题内容: 我试图以编程方式在Microsoft Bing搜索引擎上执行搜索。 这是我的理解: 有一个Bing Search API 2.0,即将被替换(2012年8月1日) 新的API被称为Windows Azure Marketplace。 两者使用不同的URL。 在旧的API(Bing Search API 2.0)中 ,您在URL中指定一个密钥(应用程序ID),该密钥将用于验证请求。只要您

  • 问题内容: 我一直试图获得一个快速应用程序,以流形式发送响应。 当我将“ rs.pipe(res)”替换为“ rs.pipe(process.stdout)”时,它会在控制台中打印,但是如何使其在快速应用程序中工作。 问题答案: 您不需要可读的流实例,只需使用: 之所以可行,是因为在Express中,它基于Node自己的,因此它继承了其所有方法(如)。

  • 我刚开始使用hibernate lucene搜索。从几天以来,我一直致力于搜索关键字与特殊字符。我正在使用MultiFieldQueryParser进行精确短语匹配以及布尔搜索。但在这个过程中,我无法得到搜索关键字的结果,如“有1年以上的经验”,如果我没有在搜索关键字周围添加任何引号,那么我就得到了结果。所以我在执行lucene查询时观察到的是,它正在转义特殊符号(+)。我正在使用Standard

  • 每当我需要在反应链中传递数据时,我都会做如下操作: 给定以下示例Dto类: 因为一直压缩数据以将其传递到链中(特别是向下几级)通常会变得很乏味,我想知道直接引用是否可以这样做: 我对第二种方法的担忧是,假设订阅者在线程池上订阅了这个Mono,我需要保证Dto是线程安全的吗(上面的例子很简单,因为它只携带一个,但是如果不是呢)? 另外,哪一个被认为是“最佳实践”?

  • 我是新来的颤振,我正在遵循一个教程,显示如何搜索数据。我不能用我自己的例子来重现。我想知道如何从这个json数据中搜索ListView中的数据。 使用此代码显示

  • VSCode中是否有任何与CTRL R类似的功能?