问题描述
-
库: 9.5.0.85-x86-vc9(最新版本)
-
问题:
一个。 Url 路径有一个逗号和参数,逗号编码为 %2C。获得的响应无效。
例如
Request.put_HttpVerb("GET"); Request.put_Path("/ncsxxx/xx/1611875700000,1860000.m3u8?_upt=e0a08e871611973159"); Response = Http.SynchronousRequest("xxxxxx",80,false,Request);
但是,使用 DownloadBd 和 DownloadSb 方法,逗号不会按原样进行编码和发送。 因此,获得了有效的响应。
B.进一步测试:
如果路径不包含参数,例如
Request.put_HttpVerb("GET"); Request.put_Path("/ncsxxx/xx/1611875700000,1860000.m3u8"); Response = Http.SynchronousRequest("xxxxxx",Request);
逗号按原样发送。
-
结论:
供您验证。
-
建议:
我预见在未来,可能会有其他服务器要求将逗号编码为 %2C。 因此,是否可以手动启用/禁用或设置特定字符的编码。
即。类似于 strtok 函数,您可以在其中设置所需的分隔符。例如。
char Sep[] = ",;\r\n"; while (xxx) { szTok = strtok(szData,Sep); xxxx; strTok = strtok(NULL,Sep); }
提案:
CkHttp Http; char Enc[]="+,"; Http.xxxxx(Enc,bEnable); Http.DownloadBd(xxxxx);
仅供参考。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)