如何将Rapid API的HTTP URL转换为Dart HTTP请求?已有代码失效
修复RapidAPI Whois查询的HTTP请求问题
你的代码里存在几个明显问题,导致请求无法正常运行:
- 字典语法错误:
headers字典中'X-Rapidapi-Key': APIKEyY这一行末尾缺少逗号,Dart会无法解析这个字典结构。 - 未定义的API密钥:
APIKEyY是未声明的变量,你需要把它替换成你实际的RapidAPI密钥字符串(用单引号或双引号包裹)。 - 冗余的Host头:
Host头不需要手动添加,http包会自动根据请求URL生成,额外添加可能引发请求异常。
修正后的代码如下:
import 'package:http/http.dart' as http; void main() async { // 替换为你要查询的域名 const targetDomain = 'sendrank.com'; // 替换为你的RapidAPI密钥 const apiKey = '你的RapidAPI密钥'; var url = 'https://zozor54-whois-lookup-v1.p.rapidapi.com/?domain=$targetDomain&format=json'; var headers = { 'X-Rapidapi-Key': apiKey, 'X-Rapidapi-Host': 'zozor54-whois-lookup-v1.p.rapidapi.com' }; var response = await http.get(Uri.parse(url), headers: headers); print(response.statusCode); // 先打印状态码判断请求是否成功 print(response.body); }
额外注意:
- 确保你的RapidAPI密钥有效,且该API的调用额度未耗尽。
- 如果需要切换返回格式,修改
format参数即可(比如xml)。 - 建议用
Uri.parse(url)来处理URL,避免字符串拼接可能出现的编码问题。
内容的提问来源于stack exchange,提问作者Dixit Ram
相关产品推荐
相关产品推荐

