Bing新闻搜索API中originalImg参数的正确用法解析

Bing新闻搜索API中originalImg参数的正确用法解析

本文深入探讨了Bing新闻搜索API中originalImg参数的正确使用方法。许多开发者在使用/news端点时,发现设置originalImg=true无法获取原始尺寸图片URL,仅返回缩略图。核心问题在于,该参数仅适用于/news/search端点。文章将通过示例代码和官方文档解析,指导开发者如何避免此常见错误,确保正确获取所需图片信息。

Bing新闻搜索API中originalImg参数的常见误解

在使用bing新闻搜索api时,开发者常常希望获取新闻文章的原始尺寸图片url,而不仅仅是缩略图。为此,api提供了一个名为originalimg的查询参数,直观上理解为设置为true即可获取原始图片。然而,许多开发者在使用/news端点(通常用于获取新闻类别或热门新闻)时,即使设置了originalimg=true,也只能在响应中找到缩略图信息,而没有原始尺寸图片的contenturl字段。

以下是一个典型的示例代码片段,展示了这种常见的使用方式:

const url = 'https://bing-news-search1.p.rapidapi.com/news?&originalImg=true&category=india&cc=in&safeSearch=Off&textFormat=Raw';const options = {    method: 'GET',    headers: {        'X-BingApis-SDK': 'true',        'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY', // 请替换为你的实际API密钥        'X-RapidAPI-Host': 'bing-news-search1.p.rapidapi.com'    }};// ... 执行API请求 ...

当使用上述代码请求/news端点时,期望的输出可能包含一个指向原始图片的高清contentUrl,例如:

{    "url": "https://www.msn.com/en-in/news/...",    "image": {        "_type": "ImageObject",        "contentUrl": "https://s.yimg.com/ny/api/res/1.2/6vOM5nkYbwetaWehEa6lGg--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02MDA-/https://media.zenfs.com/en/hearst_womens_health_52/9743c154e3be883ec18c41f03fc44d58", // 期望的原始图片URL        "thumbnail": {            "_type": "ImageObject",            "contentUrl": "https://www.bing.com/th?id=OVFT.1Wypj4IiKxycYuiB2Q81GC&pid=News",            "width": 700,            "height": 350        }    }}

然而,实际收到的响应却往往只包含缩略图信息,而缺少原始图片的contentUrl字段:

{    "url": "https://www.msn.com/en-in/news/world/sc-refuses-to-entertain-pil-for-inauguration-of-new-parliament-building-by-president/ar-AA1bJGRr",    "image": {        "_type": "ImageObject",        "thumbnail": {            "_type": "ImageObject",            "contentUrl": "https://www.bing.com/th?id=OVFT._MJPdPJ958_nyj_Ker8qOy&pid=News",            "width": 1280,            "height": 720,            "isLicensed": true        }    }}

这种差异导致开发者困惑,认为originalImg参数并未生效。

参数originalImg的正确使用场景

根据Bing新闻搜索API v7的官方文档,originalImg参数并非适用于所有新闻相关的API端点。其核心限制在于:

originalImg参数仅与/news/search端点结合使用。

这意味着,当您调用/news(获取一般新闻或分类新闻)或Trending Topics(获取热门话题)等端点时,即使在请求中包含了originalImg=true,该参数也会被忽略,API响应中将不会提供原始尺寸的图片URL。

官方文档说明:“仅将此参数与新闻搜索API一起使用。调用Web搜索API时,请勿指定此参数。热门话题会忽略此参数。”(原文链接:https://www.php.cn/link/c94ac72ea12ea1943136f2bc64719600)

因此,如果您的目标是获取新闻的原始图片,您必须使用/news/search端点来执行新闻搜索,并在请求中包含originalImg=true。

示例与解析

让我们回顾之前的代码示例,并理解其为何未能获取原始图片:

// 错误用法示例:使用/news端点,但期望originalImg生效const url = 'https://bing-news-search1.p.rapidapi.com/news?&originalImg=true&category=india&cc=in&safeSearch=Off&textFormat=Raw';// ...

此处的关键在于URL路径中的/news。由于originalImg参数不适用于/news端点,即使将其设置为true,API也会忽略此设置,并仅返回默认的缩略图信息。要正确获取原始图片,您需要将端点更改为/news/search,并可能需要添加一个q(查询词)参数来执行具体的搜索。

正确的端点使用逻辑(概念性示例,具体参数需根据需求调整):

// 正确用法示例:使用/news/search端点以激活originalImg// 注意:/news/search通常需要一个查询词(q)const searchUrl = 'https://bing-news-search1.p.rapidapi.com/news/search?q=example+query&originalImg=true&cc=in&safeSearch=Off&textFormat=Raw';const searchOptions = {    method: 'GET',    headers: {        'X-BingApis-SDK': 'true',        'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY', // 请替换为你的实际API密钥        'X-RapidAPI-Host': 'bing-news-search1.p.rapidapi.com'    }};// ... 执行API请求 ...

当使用/news/search端点并设置originalImg=true时,API将尝试在响应中包含原始尺寸图片的contentUrl字段(如果可用)。

注意事项与最佳实践

查阅官方文档: 在使用任何API时,始终优先查阅其官方文档。这是理解参数功能、端点限制和预期行为最准确的来源。理解端点差异: Bing新闻搜索API提供了多个端点,如/news、/news/search和/news/trending,它们各自有不同的用途和支持的参数。深入理解这些差异是高效利用API的关键。测试与验证: 在开发过程中,通过小范围的测试来验证API行为与文档描述是否一致,可以有效避免此类问题。错误处理: 即使使用了正确的参数和端点,也并非所有新闻条目都会提供原始尺寸图片。您的应用程序应能优雅地处理只返回缩略图的情况。

总结

originalImg参数在Bing新闻搜索API中是一个非常有用的功能,但其作用范围仅限于/news/search端点。开发者在使用此参数时,务必确保调用了正确的API端点,以避免因误解文档而导致的意外行为。通过仔细阅读官方文档、理解不同端点的功能以及进行充分的测试,可以确保您的应用程序能够正确地获取所需的新闻图片信息。

以上就是Bing新闻搜索API中originalImg参数的正确用法解析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1523627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月20日 16:04:43
下一篇 2025年12月16日 04:14:37

相关推荐

  • 如何利用Intersection Observer API实现高性能的懒加载?

    使用 Intersection Observer API 实现懒加载,可异步监听元素与视口的交叉状态,在元素进入可视区域时再加载资源。相比传统依赖 scroll 事件的方式,它由浏览器优化调度,避免频繁重排重绘,提升性能。核心优势包括异步执行、支持阈值控制、可自定义根容器及自动解耦观察逻辑。实现时将…

    2025年12月20日
    000
  • JavaScript中的异步迭代器与生成器如何结合使用?

    异步生成器通过async function*定义,结合for await…of可优雅处理异步数据流,如分页请求、事件流等场景,自动实现异步迭代器协议,简化异步序列操作。 异步迭代器与生成器结合使用,可以让开发者更优雅地处理异步数据流。JavaScript中的async function*…

    2025年12月20日
    000
  • 如何避免在子组件中重复使用 EventEmitter 传递 @Output

    在 Angular 应用中,当多个层级的组件需要响应同一逻辑事件时,通过 @Output 和 EventEmitter 进行事件链式传递容易导致代码重复和维护复杂。本教程将介绍如何利用 Angular 服务结合 RxJS Subject 实现一个中心化的事件总线机制,从而有效避免 @Output 的…

    2025年12月20日
    000
  • JavaScript中构建支持嵌套对象的URL稀疏字段集查询参数

    本文详细阐述如何使用JavaScript将包含嵌套属性的对象转换为符合稀疏字段集(Sparse Fieldset)规范的URL查询参数。通过自定义递归函数,可以高效地将如{ type: { name: ‘s’ } } 转换为type[name]=s的URL参数形式,解决了标准…

    2025年12月20日
    000
  • JavaScript中的异步迭代器与生成器如何配合使用?

    异步生成器结合async/await可创建异步可迭代对象,通过for await…of消费,每秒产出一个字符串,适用于分页请求、事件流等场景。 异步迭代器和生成器在JavaScript中可以很好地协同工作,让处理异步数据流变得更简洁。你可以在生成器函数中使用 async/await,并结…

    2025年12月20日
    000
  • Bing新闻搜索API中originalImg参数的正确用法与端点选择指南

    针对Bing新闻搜索API中originalImg参数无法获取原始图片URL的问题,本文深入解析了其正确用法。核心在于该参数仅适用于/news/search端点,而非/news或趋势话题端点。通过理解API文档,开发者可避免常见配置错误,确保按预期获取新闻图片的原始尺寸信息。 Bing新闻搜索API…

    2025年12月20日
    000
  • 如何在桌面端按需加载特定脚本

    本教程旨在解决第三方脚本(如广告单元)在移动设备上干扰布局的问题,提供一种基于JavaScript的解决方案。通过检测浏览器窗口宽度,我们可以在特定屏幕尺寸(例如800像素及以上)时才执行目标脚本,从而实现脚本的按需加载,优化移动端用户体验。 概述:按需加载脚本的必要性 在现代web开发中,响应式设…

    2025年12月20日
    000
  • 如何实现一个支持语法高亮的在线代码编辑器?

    首选 CodeMirror 或 Monaco Editor 构建在线代码编辑器,引入对应语言 mode 文件实现语法高亮,通过 theme 配置更换主题,调用 getValue() 获取代码并结合事件监听实现保存与交互功能。 要实现一个支持语法高亮的在线代码编辑器,核心是使用成熟的代码编辑器组件,并…

    2025年12月20日
    000
  • 揭秘Node.js postinstall脚本:理解其执行机制与调试策略

    本文深入探讨Node.js依赖包中postinstall脚本的执行机制。我们将解析为何在某些在线环境中(如Stackblitz)脚本可能不运行,以及在本地开发环境中,即使脚本成功执行,其控制台输出也可能被npm默认抑制。文章将提供详细的调试方法,包括使用npm install –logl…

    2025年12月20日
    000
  • 深入理解Node.js依赖包的postinstall脚本执行机制与调试

    本文旨在探讨Node.js依赖包中postinstall脚本的运行机制及常见问题。我们将分析为何这些脚本有时不按预期执行或其输出不可见,特别是在特定环境如Stackblitz中,以及npm默认的输出抑制行为。文章将提供实用的调试方法,如使用–loglevel=verbose和&#8211…

    2025年12月20日
    000
  • JavaScript如何实现真正的私有类字段?

    JavaScript实现真正私有类字段的官方推荐方式是使用#前缀语法,如#balance在类外部无法访问,确保了语言层面的强封装性,而WeakMap等旧方案因需外部存储且不够直观而受限。 JavaScript实现真正私有类字段,最直接且官方推荐的方式是使用ES2022引入的#前缀语法。这种语法在语言…

    2025年12月20日
    000
  • JavaScript中的BigInt类型有哪些实际的应用场景?

    BigInt 可安全处理超大整数运算,适用于金融、科学计算、数据库交互、加密算法及高精度时间戳等场景,解决 Number 类型精度丢失问题。 BigInt 是 JavaScript 中用于表示任意精度整数的一种数据类型,它能处理比 Number 类型更大范围的整数(Number 最大安全整数为 2⁵…

    2025年12月20日
    000
  • 深入理解与调试 npm 依赖的 postinstall 脚本

    本文旨在解析 npm 依赖中 postinstall 脚本的运行机制及常见问题。我们将探讨为何在某些环境中(如 Stackblitz)脚本可能不执行,以及 npm 默认如何处理依赖脚本的控制台输出。教程将提供本地调试方法,包括使用 npm install 带有 loglevel 或 foregrou…

    2025年12月20日
    000
  • JavaScript中的日期和时间处理有哪些最佳实践?

    使用ISO 8601格式创建日期可避免解析差异,推荐new Date(‘2025-04-05T10:00:00Z’);处理时区应优先使用.toISOString()和Intl.DateTimeFormat;比较日期需用时间戳(.getTime());复杂操作可选date-fn…

    2025年12月20日
    000
  • Prisma Client 扩展中异步计算字段的处理策略

    本文探讨了Prisma Client result 扩展中计算字段处理异步操作的限制。由于 compute 函数是同步的,直接 await 异步函数会导致返回 Promise。文章提供了两种解决方案:一是让 compute 返回一个可异步调用的函数,待需要时再解析;二是利用 model 扩展定义自定…

    2025年12月20日
    000
  • 解决 React-Toastify 升级后通知不渲染问题

    本文旨在解决 React-Toastify 从 v7 升级到 v9 后通知不渲染的问题。通过分析代码变更和社区反馈,我们发现该问题通常源于特定版本(如 v9.0.3)的已知 bug。解决方案是升级到修复了这些问题的版本(如 v9.1.2 或更高),并结合最佳实践,确保 ToastContainer …

    2025年12月20日
    000
  • 如何利用IndexedDB在浏览器端构建强大的客户端数据库?

    IndexedDB是浏览器内置的NoSQL数据库,支持事务、索引和异步操作,适用于存储大量结构化数据。通过indexedDB.open创建或打开数据库,onupgradeneeded事件中定义对象仓库和索引,版本号控制schema变更。使用createObjectStore设置主键,createIn…

    2025年12月20日
    000
  • JavaScript中如何优雅地处理异步操作的错误?

    使用 try/catch 捕获 async 函数错误,封装高阶函数复用处理逻辑,结合 Promise 链的 catch 和全局 unhandledrejection 事件监听,构建完整异步错误处理机制。 在JavaScript中处理异步操作的错误,关键在于统一、可读性强且能覆盖各种异常场景。使用现代…

    2025年12月20日
    000
  • PHP多步表单数据持久化与导航:基于会话和GET/POST请求的实现

    本教程详细介绍了如何利用PHP会话管理和GET/POST请求构建一个健壮的多步表单。通过在服务器端存储用户输入数据并使用重定向机制处理页面导航,我们确保了数据在不同步骤间的持久性,同时支持浏览器回退和刷新功能,显著提升了用户体验和表单的稳定性。 引言:多步表单的挑战 在现代web应用中,多步表单(s…

    2025年12月20日 好文分享
    000
  • 解决 React-Toastify 升级后不渲染问题:版本兼容与最佳实践

    本文旨在解决 React-Toastify 在版本升级后可能出现的通知不渲染问题。通过分析常见升级误区,特别是多余的容器组件定义和版本兼容性问题,文章将提供一套完整的解决方案,包括推荐使用稳定版本(如 9.1.2)、优化容器组件配置以及确保正确的导入和使用方式,旨在帮助开发者高效解决此类问题并遵循最…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信