我正在尝试使用Charles来模拟(模拟)服务器。我发现Charles有一个叫做“Map Local ...”的东西,它使我可以使用本地存储的文件来答复客户端。

通过右键单击“查尔斯序列”列表并选择“保存响应...”,已存储了我指向的文件。

但是,当使用我的iOS应用程序对此进行测试时,我收到以下错误消息:

Failed to get areas: Error Domain=AFNetworkingErrorDomain Code=-1016 "Expected content type {(
    "text/json",
    "application/json",
    "text/javascript"
)}, got text/plain"

因此,以某种方式,我没有使用Content类型的正确标题信息发送响应。有没有办法告诉Charles响应是JSON?可能的问题是,存储的文件仅包含JSON数据,而不包含任何 header 。

最佳答案

您需要在Charles中添加一个重写规则,以将Content-Type header 更改回application/json。

“本地 map ”将仅提供文本/纯文字内容类型。

为此,请转到工具>重写...>添加。

添加您要在本地映射的所有位置,然后为规则添加一个类似于以下内容的位置:

我永远不建议只为Charles调整代码,因为如果您无法精确复制Web服务,那么这将无法测试Web服务。

关于ios - Charles Map Local不适用于JSON数据吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21829485/

10-13 08:58