Chilkat 9.5.0.85-x86-vc9 CkHttp SynchronousRequest带参数Url 编码问题第二部分

问题描述

  1. 库: 9.5.0.85-x86-vc9(最新版本)

  2. 问题:

    一个。 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);
    

    逗号按原样发送。

  1. 结论:

    供您验证。

  2. 建议:

    我预见在未来,可能会有其他服务器要求将逗号编码为 %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 (将#修改为@)