首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MockRestServiceServer中模拟http头?

如何在MockRestServiceServer中模拟http头?
EN

Stack Overflow用户
提问于 2017-12-08 14:42:09
回答 3查看 6.2K关注 0票数 7

我使用MockRestServiceServer来模拟外部的webservice xml响应。这已经很好了,但是我怎样才能在响应中(而不仅仅是响应体)模拟http头呢?

代码语言:javascript
复制
    @MockBean
    private RestTemplate restTemplate;

    private MockRestServiceServer mockServer;

    @Before
    public void createServer() throws Exception {
        mockServer = MockRestServiceServer.createServer(restTemplate);
    }

    @Test
    public void test() {
        String xml = loadFromFile("productsResponse.xml");
        mockServer.expect(MockRestRequestMatchers.anything()).andRespond(MockRestResponseCreators.withSuccess(xml, MediaType.APPLICATION_XML));
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-08 14:45:57

只需使用withSuccess方法执行headers方法即可。

代码语言:javascript
复制
mockServer
       .expect(...)
       .andRespond(withSuccess().headers(...));
票数 11
EN

Stack Overflow用户

发布于 2019-10-21 10:16:19

@Gorazd的回答是正确的。给它添加更多的肉:

代码语言:javascript
复制
HttpHeaders headers = new HttpHeaders();
headers.setLocation(new URI(billingConfiguration.getBillingURL()+"/events/123"));
mockServer.expect(ExpectedCount.once(),
    requestTo(new URI(billingConfiguration.getBillingURL())))                    
    .andExpect(method(HttpMethod.POST))
    .andRespond(withStatus(HttpStatus.OK)
    .contentType(MediaType.APPLICATION_JSON).headers(headers));
票数 2
EN

Stack Overflow用户

发布于 2019-11-21 09:46:02

以下代码适用于我:

代码语言:javascript
复制
HttpHeaders mockResponseHeaders = new HttpHeaders();
mockResponseHeaders.set("Authorization", mockAuthToken);

mockServer
        .expect(once(), requestTo(testhUrl))
        .andExpect(method(HttpMethod.POST))
        .andRespond(withSuccess().headers(mockResponseHeaders));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47716583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档