json 使用Cypress在API测试中使用GET方法时避免406错误

a64a0gku  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(129)

我想测试一个应用程序的API,我从开发人员那里得到了一个令牌,但是我得到了一个错误'cy.request()failed on:
https://
我们从您的Web服务器收到的响应是:
406:不可接受
这被认为是一个失败,因为状态代码不是2xx或3xx。'这是我使用的代码:

describe('API Test', () => {
    const token = 'your_token_here';

    it('Should make a GET request with a Bearer token and avoid 406 error', () => {
        cy.request({
            method: 'GET',
            url: 'https://your-api.com/endpoint',
            headers: {
                'Authorization': `Bearer ${token}`,
                'Accept': 'application/json'
            }
        }).then((response) => {
            expect(response.status).to.eq(200);
            expect(response.body).to.be.an('object');
        });
    });
});

我尝试使用“接受”:“应用程序/json”和“内容类型”:“application/json”,但没有任何帮助。

jmo0nnb3

jmo0nnb31#

Content-type头用于指示资源的原始媒体类型。由于您发送的是GET请求,因此content-type并不重要。
Accept报头被请求的发送者(浏览器)用来指定可接受的响应媒体类型。因此在您的情况下,response的类型可能不是application/json,这就是您获取
406:不可接受
我还发现在source中,在某些情况下,**服务器可能对406错误负责,因为它是产生错误的网络对象。也许服务器配置错误,不能正确处理请求。也许是流量路由问题。
因此,尝试您的请求没有任何标题,如果406仍然发生,您可以肯定它是从其他服务器和您的请求是确定的。

相关问题