5

我使用 Xdebug 和 PHPStorm 的调试功能调试我的 API。为此,客户端需要一个名为XDEBUG_SESSION.

使用 Postman 时,我曾经使用 Chrome 扩展程序添加此 cookie,并使用 Postman 的 cookie 拦截功能使其在 Postman 中工作(因为它是一个沙盒应用程序)。

但是,我无法在 Paw 中创建 cookie。因此,作为一种解决方法,我修改了 API 响应 cookie,使其键为 as XDEBUG_SESSION,值为PHPSTORM,调试工作正常。但是,这并不理想,因为我还想将到期日期设置为遥远的未来(我不能在 Paw 中)。

所以,我的问题是:

  • 有没有办法在 Paw 中添加自定义 cookie?
  • 如果没有,有没有办法编辑现有 cookie 的到期日期(考虑到名称、值、域和路径是可编辑的)?
  • 是否有其他替代方案可以实现我的目标?
4

2 回答 2

11

我刚刚设法用 Paw (2.1.1) 调试我的 API 来实现这一点。

您只需添加一个标题,其名称Cookie和值Cookies将从将出现的下拉列表中选择。然后,您必须在刚刚创建的标头的 Cookies 值内插入一个名为XDEBUG_SESSION的Cookie。PHPSTORM

为了更清楚,您可以在下面的屏幕截图中看到它:

在此处输入图像描述

于 2015-01-21T14:11:19.253 回答
2

我弄乱了它,看看我是否可以创建一个扩展。我无法做到,以下内容不起作用,但我想我会分享,以防有人知道丢失的部分。

首先,此功能不属于任何扩展类别(生成器、动态值、导入器)。我尝试使用动态值类别但不成功:

CookieInjector = function(key, value) {

    this.key = "XDEBUG_SESSION";
    this.value = "PHPSTORM";

    this.evaluate = function () {
        var f = function (x,y) {
                document.cookie=this.key+"="+this.value;
                return true;
        }
        return f(this.key, this.value);
    }

    // Title function: takes no params, should return the string to display as
    // the Dynamic Value title
    this.title = function() {
        return "Cookie"
    }

    // Text function: takes no params, should return the string to display as
    // the Dynamic Value text
    this.text = function() {
        return this.key+"="+this.value;
    }
}

// Extension Identifier (as a reverse domain name)
CookieInjector.identifier = "com.luckymarmot.PawExtensions.CookieInjector";

// Extension Name
CookieInjector.title = "Inject Cookie Into Cookie Jar";

// Dynamic Value Inputs
CookieInjector.inputs = [
    DynamicValueInput("key", "Key", "String"),
    DynamicValueInput("value", "Value", "String")
]

// Register this new Extension
registerDynamicValueClass(CookieInjector);

阻止它工作的主要原因是我不确定请求是如何在 PAW 中构建的,也不确定如何附加 cookie。我浏览了这里的文档:https ://luckymarmot.com/paw/doc/Extensions/Reference/Reference ,但找不到我需要的东西。

于 2015-01-08T18:58:14.213 回答