当前位置: 首页 > 知识库问答 >
问题:

Yii2 REST API编码接受问题

吴飞语
2023-03-14

我试图使用代码欺骗功能测试我的应用程序的RESTful API。我使用HttpBasicAuth与自定义身份验证功能,验证用户名和密码。

我试图测试的endpoint是一个简单的GET /users.functional.suite.yml是这样的:

class_name: FunctionalTester
modules:
  enabled: 
    - Filesystem 
    - Yii2 
    - REST:
        depends: PhpBrowser
    - tests\codeception\_support\FixtureHelper
  config: 
    Yii2:
        configFile: 'codeception/config/functional.php'
    REST:
        url: 'http://localhost:8888/v1/'

我的用户名是APICEPT。php是这样开始的:

<?php 
$I = new FunctionalTester($scenario);
$I->wantTo('test the user REST API');
$I->amHttpAuthenticated('goodname', 'goodpassword');
$I->sendGET('users/1');

当我运行套件时,我得到401(未经授权的HTTP异常)。在--debug中,请求标头为空。但是,当我在Postman中运行GET(提供用户名和密码)时,GET会返回我期望的JSON响应。所以我知道应用编程接口有效。

看来amHttpAuthenticated存在问题,我认为它应该提供授权头,对吗?

关于如何解决这个问题,有什么建议吗?

你好乔

共有1个答案

谷梁英资
2023-03-14

如果其他人有这个问题,我的依赖性就错了:

class_name: FunctionalTester
modules:
  enabled: 
    - Filesystem 
    - Yii2 
    - REST:
        depends: Yii2
...

当我最初在添加REST后进行构建时,我收到错误消息:“此模块依赖于Codeception\Lib\InnerBrowser”,然后使用

depends: PhpBrowser

希望这对别人有帮助。

 类似资料:
  • 我正在为一位位于巴西的客户开发一个网站。他的网站的一部分显示了用户的反馈/评论。 以下是一个例子: 正确版本: “这是我的一分钟!” 当我向用户输出时,显示如下内容: 不正确的版本: “这是我的一分钟!” 我将这些评论保存到mySQL数据库(Hostgator),并将数据库排序规则设置为“utf8\U unicode\U ci”。 在超文本标记语言的顶部,我声明了以下内容: 我使用Laravel

  • 下面指定文件的字符编码: 但大写变体: 显而易见的函数不适用于本例。如何在声明中使UTF-8成为UTF-8的别名?

  • 问题内容: 发送到Google Cloud Vision的base64编码图像出现问题。有趣的是,如果我通过URI发送图像,则可以正常工作,因此我怀疑编码方式有误。 这是交易: 我总是得到的答复是: 如果我尝试使用URI代替: 响应还可以… 我按照推荐的方式从Google进行编码 知道这里有什么问题吗? 问题答案: 我没有使用Google Cloud Vision的经验,但是在查看了他们的文档和示

  • 我有一个ASP.NET WebService,如下所示: ??-??-?? 这是一个考验 如何配置WebService以接受UTF-8编码的字符串?

  • 最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)在使用Ant的原始serverA上编译良好( ),但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,如“用于编码GBK的Unmappable character”(Unmappable character for encoding GBK)。(JDK版本相同)

  • 我有一个(非常简单的)java Spring Boot/REST服务,它从输入中呈现PDF并使用IntelliJ对其进行测试。 我使用pdfbox作为创建此类pdf的工具。 一个特点是,除了它想要的常规内容外,客户端还可以将附件作为字节[]提供。 当用户尝试该服务时,最终文档只有附件部分的空白页。 使用IntelliJ和HTTP REST客户端进行了尝试,但遇到了相同的问题 当我注意到使用post