我正在使用亚马逊的CloudDrive SDK处理应用程序。请求文件夹或文件列表时,可以在查询字符串中发送过滤器,但每个过滤器的值都需要转义特殊字符(包含空格,很像Linux命令行参数)。我不完全确定如何通过Guzzle(或一般的PHP)发送字符串,以便API将其解释为转义字符串。
如果我使用' addcslashes'并定义所有必需的字符,API返回Invalid filter:name:Test\
,但如果我只是cURL相同的端点,它会返回正确的数据。
在PHP中使用addcslashes
时,请求值最终为" name:Test \ Folder AND kind:FOLDER"。但正如我所说,这在端点处失败了。
提前感谢您的帮助!
答案 0 :(得分:0)
所以我在一天左右发布了这个问题,在没有解决方案的情况下搞乱了问题,发布后立即尝试了另一种似乎解决了我的问题的方法......
在Guzzle库中,将请求的编码类型设置为RFC1738
似乎可以解决问题并返回正确的数据。虽然,我仍然需要在值上调用addcslashes
。