header 和 cfhttpparam 类型的 cookie 之间的区别

Difference between header and cookie for cfhttpparam type

我正在开发一个 ColdFusion 应用程序,该应用程序向 SharePoint Online 进行身份验证并使用 SharePoint 的 REST API 提取一些文件,如 http://paulryan.com.au/2014/spo-remote-authentication-rest/

中所述

当我尝试通过发布到 _api/contextinfo 来获取 FormDigestValue 时,如果我将 cfhttpparam 类型设置为 cookie,我会收到 403 禁止,但是如果我将 cookie 作为 header 一切传递有效,但我不明白为什么。

<cfhttpparam
    type="header"
    name="cookie"
    value="rtFa=#rtFa#;FedAuth=#FedAuth#"    
  />

有效但

<cfhttpparam
    type="cookie"
    name="rtFa"
    value="#rtFa#"    
/> 
<cfhttpparam
    type="cookie"
    name="FedAuth"
    value="#FedAuth#"    
/> 

失败

查看正在发生的事情的最佳方法是检查流量并查看正在发生的事情。除此之外,我知道 cfhttpparam 标签使用 header 类型和 cookie 类型的区别在于 URL 编码。

当您使用 header 类型时,值是 URL 编码。

当您使用 cookie 时,键入值 URL 编码的。

所以我的猜测是他们的 API 不喜欢 URL 编码的值。

Document reference for cfhttpparam attributes.