Chilkat CkHttp DownloadBd SynchronousRequest Url 编码问题

Chilkat CkHttp DownloadBd SynchronousRequest Url Encoding Issue

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

    (实际测试老版本也有同样问题)

  2. 问题:

    Url 字符串有一个逗号 ',' 字符 eg.

    hxxp://show.kanxxxx.com/ncsxxxx/sd/1611309600000,1800000.m3u8?_upt=c5e8aa9a1611395849

    使用方法DownloadBd & SynchronousRequest(我相信其他方法也是如此)并通过Fiddler抓取流量,获得HTTP/1.1 403 Forbidden响应。发现逗号','编码为%2C.

    使用Fiddler composer发送同样的url,发现逗号没有编码,原样发送出去。获取到的响应有效成功!

  3. 是否可以手动关闭自动 URL 编码?或者我没有包含其他方法或属性来关闭编码?

  4. 这是一个错误吗?

Chilkat 已更新以避免 URL 对路径中的逗号字符进行编码。如果您发送电子邮件至 support@chilkatsoft.com,我可以为 VC9 提供新的 v9.5.0.85 预发布版本。否则,.85版本将在本月底(一周左右)正式发布。

建议:

我预见将来可能会有其他服务器要求将逗号编码为%2C。因此,是否可以enable/disable,或者手动设置特定字符的编码。

即。类似于 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);

只是一个建议,供您考虑。