巧用 chrome 浏览器的开发者工具解决sdk问题

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 阿里云的API和SDK给用户的自主操作带来了极大的方便. 前两天遇到一个用户,反馈在使用mongodb 的sdk 获取新加坡的集群实例时,总是结果为空. 但请示返回的状态码却是200, 即成功. 但自己确实是有新加坡的集群实例的,并且用的还是购买实例的主账号的 AccessID/Secret.

阿里云的API和SDK给用户的自主操作带来了极大的方便. 前两天遇到一个用户,反馈在使用mongodb 的sdk 获取新加坡的集群实例时,总是结果为空. 但请示返回的状态码却是200, 即成功. 但自己确实是有新加坡的集群实例的,并且用的还是购买实例的主账号的 AccessID/Secret. 我们来看下这个问题.

  1. 客户的代码是来自于 Api.aliyun.com 复制过来,然后修改了签名键值对,代码片段如下:
#!/usr/bin/env python
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-shanghai')
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('mongodb.aliyuncs.com')
request.set_method('POST')
request.set_version('2015-12-01')
request.set_action_name('DescribeDBInstances')
request.add_query_param('RegionId', 'ap-southeast-1')
response = client.do_action(request)
# python2:  print(response) 
print(str(response, encoding = 'utf-8'))

到底是哪里的问题呢?正好我们手头上有一台新加坡的 mongodb 集群实例,我们是否可以从浏览器的返回结果中查看到蛛丝马迹呢?我们尝试一下

  1. 在 chrome 浏览器,先打开新加坡的mongodb 控制台,然后选择开发者工具.如图:
    image

3.选择分片集群实例.
4.这时我们查看开发者工具, 会发现有一个调用 DescribeDBInstances 的页面, 在页面中找到 Query String Parameters 中 action 为 DescribeDBInstances, 找到其 Form data, 这时赫然发现里有一项参数:
DBInstanceType:sharding,如图:
image
看来就是这个参数作的怪, 好了我们修改代码,添加如下行:

request.add_query_param('DBInstanceType','sharding')

果然得到了正确的结果. 可惜文档中没有写明白, 后来又过该方法,发现这个参数的默认值是 replicate, 如果不指定,就只会显示复制集的实例.

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
2月前
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
362 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
|
4天前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
51 9
|
21天前
|
Web App开发 开发者
|
23天前
|
Web App开发 JSON 安全
Chrome浏览器的跨域问题
【10月更文挑战第6天】
|
28天前
|
Web App开发 缓存 安全
Chrome浏览器启动参数大全
这是一组用于定制浏览器行为的命令行参数,包括但不限于:不停用过期插件、放行非安全内容、允许应用中心脚本、停用GPU加速视频、禁用桌面通知、禁用拓展及各类API、调整缓存设置、启用打印预览、隐身模式启动、设定语言、使用代理服务器、无头模式运行等。通过这些参数,用户可以根据需求灵活调整浏览器功能与性能。
|
2月前
|
Web App开发 存储 前端开发
Chrome浏览器的跨域问题
Chrome浏览器的跨域问题
|
3月前
|
Web App开发 JSON 安全
【跨域难题终结者】:一键解锁Chrome浏览器神秘设置,彻底告别开发阶段的跨域烦恼!
【8月更文挑战第20天】跨域是前端开发常遇难题,尤其在前后端分离项目中。浏览器因安全考量会阻止不同源间的请求。本文对比CORS、JSONP、代理服务器等解法,并介绍开发阶段通过调整Chrome设置来临时禁用跨域限制的方法,提供启动Chrome及使用`fetch`API示例,适合快速测试。但请注意这不适用于生产环境,存在一定安全风险。
631 1
|
3月前
|
Web App开发
成功解决Chrome浏览器 控制台下看不到接口信息的问题
这篇文章提供了解决Chrome浏览器控制台不显示接口信息问题的方法,包括检查过滤设置和确保“保留日志”开关已打开。
成功解决Chrome浏览器 控制台下看不到接口信息的问题
|
3月前
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
74 0
|
3月前
|
Web App开发 缓存 前端开发
哇塞!Chrome 浏览器竟有四大神秘进程,带你探秘互联网世界的强大引擎!
【8月更文挑战第31天】Chrome浏览器因其快速稳定的表现深受用户喜爱,其背后是四大独特多进程架构的支持:浏览器主进程管理界面与进程协调;网络进程处理网络请求及缓存;渲染进程将网页内容转化为可视化页面;插件进程则确保各类插件如Flash Player的安全稳定运行。通过这些进程间的高效协作,Chrome实现了流畅、稳定的上网体验。例如,在访问新闻网站时,各进程协同工作,确保网页内容顺利加载和显示。理解这些进程有助于提升使用体验并有效解决问题。
50 0