【linux环境下用curl库的get请求报错】

linux环境下用curl库的get请求报错:3 URL格式不正确 URL using bad/illegal format or missing URL

报错的日志

curl错误码是3 URL格式不正确->URL格式错误。语法不正确。:[URL using bad/illegal format or missing URL]
同样的请求参数复制出来用curl命令测试,或用postman工具测试都是正常的,只有在代码中调用curl库会报错;而且只有get请求会报错,post请求是正常的
在这里插入图片描述

问题原因

请求参数后面多了一个换行符
在这里插入图片描述

解决办法

就是把参数中的回车换行符去掉,比如这种方式:

//获取设备序列号
void Func_GetDeviceSN(char szID[33], int nIDSize)
{
	int iLen = 0;

	//调用接口获取设备序列号
	GetIDFromSNTxt(szID, nIDSize);//这个接口获取到的序列号可能会有换行符,有换行符的参数拼到GET请求的参数后面会导致curl库中报错:错误码3 URL格式不正确->URL格式错误。语法不正确。:[URL using bad/illegal format or missing URL]

	szID[nIDSize-1] = 0x00;
	iLen = strlen((const char*)szID);
	if( iLen > 0 )
	{
		//把回车换行符取掉
		if(szID[iLen-1] == '\n')
		{
			szID[iLen-1] = 0x00;
		}
		if(szID[iLen-2] == '\r')
		{
			szID[iLen-2] = 0x00;
		}
	}
}

有换行符的参数放到post请求里面可以正常使用,就是放到get请求中就会报错
参数去掉后面的换行符后再拼到get请求里面,调用curl接口就正常了
问题虽然处理了,但是还没弄懂这个报错的根本原因,还请各位大哥补充解惑

### Linux 下载 Miniconda 错误解决方案 当在Linux系统上尝试下载Miniconda时可能会遇到各种错误。以下是常见问题及其解决方法: #### 1. 网络连接问题 如果网络不稳定或防火墙阻止访问,可能导致无法成功获取安装脚本。 - **验证网络状态** 确保主机能够正常上网并能解析外部域名: ```bash ping www.google.com ``` - **临时更改DNS设置** 有时修改 `/etc/resolv.conf` 文件中的 DNS 地址为公共 DNS 如 Google 的 `8.8.8.8` 或 Cloudflare 的 `1.1.1.1` 可解决问题[^2]。 #### 2. 安全协议不匹配 部分老旧版本的操作系统可能默认使用过时的安全协议(如TLSv1),而当前大多数网站已升级至更高版本(TLSv1.2+),这会造成SSL握手失败。 - **更新curl支持最新安全协议** 通过包管理器安装最新的 curl 工具来获得更好的兼容性: 对于基于Debian/Ubuntu系统的命令如下所示: ```bash sudo apt-get update && sudo apt-get install --only-upgrade curl ``` 对于基于RedHat/CentOS系统的命令则为: ```bash sudo yum check-update && sudo yum upgrade curl ``` #### 3. URL路径不存在或变更 官方提供的链接地址可能发生变动,特别是针对特定硬件平台的二进制文件位置。 - **确认URL有效性** 前往官方网站页面核实所需资源的确切网址: [Miniconda Download Page](https://docs.conda.io/en/latest/miniconda.html) #### 4. 权限不足 试图保存文件到受保护目录下会触发权限拒绝报错。 - **切换工作空间** 建议先切换到个人家目录或其他有写入权限的地方再执行wget/curl操作: ```bash cd ~/ ``` #### 5. 存储空间不够 目标磁盘分区剩余容量不足以容纳新下载的数据也会引发异常提示。 - **清理无用数据释放更多可用空间** 利用 `du -sh * | sort -h` 查看占用情况,并适当删除不必要的大文件;或者考虑更换其他具有充足余量的目标挂载点进行存储。 以上措施有助于排除大部分因环境因素引起的下载障碍,在采取相应调整之后重新发起请求通常可以获得预期的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值