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