Chilkat CkHttp DownloadBd SynchronousRequest Url 编码问题

问题描述

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

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

  2. 问题:

    Url 字符串有一个逗号 ',' 字符,例如。

    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 编码路径中的逗号字符。如果您发送电子邮件至 [email protected],我可以为 VC9 提供新的 v9.5.0.85 预发布版本。否则,.85版本将在本月底(大约一周后)正式发布。

,

建议:

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

仅供参考。