okhttp3.mockwebserver.MockResponse类的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(15.6k)|赞(0)|评价(0)|浏览(148)

本文整理了Java中okhttp3.mockwebserver.MockResponse类的一些代码示例,展示了MockResponse类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MockResponse类的具体详情如下:
包路径:okhttp3.mockwebserver.MockResponse
类名称:MockResponse

MockResponse介绍

[英]A scripted response to be replayed by the mock web server.
[中]模拟web服务器将重播的脚本响应。

代码示例

代码示例来源:origin: square/retrofit

public static void main(String... args) throws IOException, InterruptedException {
  MockWebServer server = new MockWebServer();
  server.start();
  server.enqueue(new MockResponse());

  Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(server.url("/"))
    .addConverterFactory(new JsonStringConverterFactory(GsonConverterFactory.create()))
    .build();
  Service service = retrofit.create(Service.class);

  Call<ResponseBody> call = service.example(new Filter("123"));
  Response<ResponseBody> response = call.execute();
  // TODO handle user response...

  // Print the request path that the server saw to show the JSON query param:
  RecordedRequest recordedRequest = server.takeRequest();
  System.out.println(recordedRequest.getPath());

  server.shutdown();
 }
}

代码示例来源:origin: spring-projects/spring-framework

private MockResponse getRequest(RecordedRequest request, byte[] body, String contentType) {
  if (request.getMethod().equals("OPTIONS")) {
    return new MockResponse().setResponseCode(200).setHeader("Allow", "GET, OPTIONS, HEAD, TRACE");
  }
  Buffer buf = new Buffer();
  buf.write(body);
  MockResponse response = new MockResponse()
      .setHeader("Content-Length", body.length)
      .setBody(buf)
      .setResponseCode(200);
  if (contentType != null) {
    response = response.setHeader("Content-Type", contentType);
  }
  return response;
}

代码示例来源:origin: square/okhttp

HttpUrl requestUrl = mockWebServer.url(request.getPath());
String code = requestUrl.queryParameter("code");
String stateString = requestUrl.queryParameter("state");
ByteString state = stateString != null ? ByteString.decodeBase64(stateString) : null;
 return new MockResponse()
   .setResponseCode(404)
   .setBody("unexpected request");
 listener.sessionGranted(session);
} catch (IOException e) {
 return new MockResponse()
   .setResponseCode(400)
   .setBody("code exchange failed: " + e.getMessage());
return new MockResponse()
  .setResponseCode(302)
  .addHeader("Location", "https://twitter.com/CuteEmergency/status/789457462864863232");

代码示例来源:origin: square/okhttp

/**
 * Attempts to perform a web socket upgrade on the connection. This will overwrite any previously
 * set status or body.
 */
public MockResponse withWebSocketUpgrade(WebSocketListener listener) {
 setStatus("HTTP/1.1 101 Switching Protocols");
 setHeader("Connection", "Upgrade");
 setHeader("Upgrade", "websocket");
 body = null;
 webSocketListener = listener;
 return this;
}

代码示例来源:origin: square/okhttp

/**
 * Returns an early guess of the next response, used for policy on how an incoming request should
 * be received. The default implementation returns an empty response. Mischievous implementations
 * can return other values to test HTTP edge cases, such as unhappy socket policies or throttled
 * request bodies.
 */
public MockResponse peek() {
 return new MockResponse().setSocketPolicy(SocketPolicy.KEEP_OPEN);
}

代码示例来源:origin: square/okhttp

/** Creates a new mock response with an empty body. */
public MockResponse() {
 setResponseCode(200);
 setHeader("Content-Length", 0);
}

代码示例来源:origin: bumptech/glide

@Test
public void testHandlesRedirect302s() throws Exception {
 String expected = "fakedata";
 mockWebServer.enqueue(new MockResponse().setResponseCode(302)
   .setHeader("Location", mockWebServer.url("/redirect").toString()));
 mockWebServer.enqueue(new MockResponse().setResponseCode(200).setBody(expected));
 getFetcher().loadData(Priority.LOW, callback);
 waitForResponseLatch.await();
 verify(callback).onDataReady(streamCaptor.capture());
 assertStreamOf(expected, streamCaptor.getValue());
}

代码示例来源:origin: bumptech/glide

@Test
public void testHandlesRedirect301s() throws Exception {
 String expected = "fakedata";
 mockWebServer.enqueue(new MockResponse().setResponseCode(301)
   .setHeader("Location", mockWebServer.url("/redirect").toString()));
 mockWebServer.enqueue(new MockResponse().setResponseCode(200).setBody(expected));
 getFetcher().loadData(Priority.LOW, callback);
 verify(callback).onDataReady(streamCaptor.capture());
 TestUtil.assertStreamOf(expected, streamCaptor.getValue());
 assertThat(mockWebServer.takeRequest().getMethod()).isEqualTo("GET");
 assertThat(mockWebServer.takeRequest().getMethod()).isEqualTo("GET");
}

代码示例来源:origin: spring-projects/spring-security

@Before
public void setup() throws Exception {
  this.server = new MockWebServer();
  this.server.start();
  this.server.enqueue(new MockResponse().setBody(jwkSet));
  this.decoder = new NimbusReactiveJwtDecoder(this.server.url("/certs").toString());
}

代码示例来源:origin: parse-community/Parse-SDK-Android

private void doSingleParseHttpClientExecuteWithGzipResponse(
    int responseCode, String responseStatus, final String responseContent, ParseHttpClient client)
    throws Exception {
  MockWebServer server = new MockWebServer();
  Buffer buffer = new Buffer();
  ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
  GZIPOutputStream gzipOut = new GZIPOutputStream(byteOut);
  gzipOut.write(responseContent.getBytes());
  gzipOut.close();
  buffer.write(byteOut.toByteArray());
  MockResponse mockResponse = new MockResponse()
      .setStatus("HTTP/1.1 " + responseCode + " " + responseStatus)
      .setBody(buffer)
      .setHeader("Content-Encoding", "gzip");
  server.enqueue(mockResponse);
  server.start();
  String requestUrl = server.url("/").toString();
  ParseHttpRequest parseRequest = new ParseHttpRequest.Builder()
      .setUrl(requestUrl)
  assertEquals(ParseHttpRequest.Method.GET.toString(), recordedRequest.getMethod());
  Headers recordedHeaders = recordedRequest.getHeaders();

代码示例来源:origin: SonarSource/sonarqube

@Test
public void send_posts_payload_to_http_server() throws Exception {
 Webhook webhook = new Webhook(WEBHOOK_UUID, PROJECT_UUID, CE_TASK_UUID, RandomStringUtils.randomAlphanumeric(40),"my-webhook", server.url("/ping").toString());
 server.enqueue(new MockResponse().setBody("pong").setResponseCode(201));
 WebhookDelivery delivery = newSender().call(webhook, PAYLOAD);
 assertThat(delivery.getHttpStatus()).hasValue(201);
 assertThat(delivery.getWebhook().getUuid()).isEqualTo(WEBHOOK_UUID);
 assertThat(delivery.getDurationInMs().get()).isGreaterThanOrEqualTo(0);
 assertThat(delivery.getError()).isEmpty();
 assertThat(delivery.getAt()).isEqualTo(NOW);
 assertThat(delivery.getWebhook()).isSameAs(webhook);
 assertThat(delivery.getPayload()).isSameAs(PAYLOAD);
 RecordedRequest recordedRequest = server.takeRequest();
 assertThat(recordedRequest.getMethod()).isEqualTo("POST");
 assertThat(recordedRequest.getPath()).isEqualTo("/ping");
 assertThat(recordedRequest.getBody().readUtf8()).isEqualTo(PAYLOAD.getJson());
 assertThat(recordedRequest.getHeader("User-Agent")).isEqualTo("SonarQube/6.2");
 assertThat(recordedRequest.getHeader("Content-Type")).isEqualTo("application/json; charset=utf-8");
 assertThat(recordedRequest.getHeader("X-SonarQube-Project")).isEqualTo(PAYLOAD.getProjectKey());
}

代码示例来源:origin: parse-community/Parse-SDK-Android

@Test
public void testParseOkHttpClientExecuteWithGZIPResponse() throws Exception {
  // Make mock response
  Buffer buffer = new Buffer();
  final ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
  GZIPOutputStream gzipOut = new GZIPOutputStream(byteOut);
  gzipOut.write("content".getBytes());
  gzipOut.close();
  buffer.write(byteOut.toByteArray());
  MockResponse mockResponse = new MockResponse()
      .setStatus("HTTP/1.1 " + 201 + " " + "OK")
      .setBody(buffer)
      .setHeader("Content-Encoding", "gzip");
  // Start mock server
  server.enqueue(mockResponse);
  server.start();
  ParseHttpClient client = ParseHttpClient.createClient(new OkHttpClient.Builder());
  // We do not need to add Accept-Encoding header manually, httpClient library should do that.
  String requestUrl = server.url("/").toString();
  ParseHttpRequest parseRequest = new ParseHttpRequest.Builder()
      .setUrl(requestUrl)
      .setMethod(ParseHttpRequest.Method.GET)
      .build();
  // Execute request
  ParseHttpResponse parseResponse = client.execute(parseRequest);
  // Make sure the response we get is ungziped by OkHttp library
  byte[] content = ParseIOUtils.toByteArray(parseResponse.getContent());
  assertArrayEquals("content".getBytes(), content);
  server.shutdown();
}

代码示例来源:origin: spring-projects/spring-framework

private MockResponse patchRequest(RecordedRequest request, String expectedRequestContent,
    String contentType, byte[] responseBody) {
  assertEquals("PATCH", request.getMethod());
  assertTrue("Invalid request content-length",
      Integer.parseInt(request.getHeader("Content-Length")) > 0);
  String requestContentType = request.getHeader("Content-Type");
  assertNotNull("No content-type", requestContentType);
  Charset charset = StandardCharsets.ISO_8859_1;
  if (requestContentType.contains("charset=")) {
    String charsetName = requestContentType.split("charset=")[1];
    charset = Charset.forName(charsetName);
  }
  assertEquals("Invalid request body", expectedRequestContent, request.getBody().readString(charset));
  Buffer buf = new Buffer();
  buf.write(responseBody);
  return new MockResponse().setResponseCode(201)
      .setHeader("Content-Length", responseBody.length)
      .setHeader("Content-Type", contentType)
      .setBody(buf);
}

代码示例来源:origin: parse-community/Parse-SDK-Android

private void doSingleParseHttpClientExecuteWithResponse(int responseCode, String responseStatus,
                            String responseContent, ParseHttpClient client) throws Exception {
  MockWebServer server = new MockWebServer();
  MockResponse mockResponse = new MockResponse()
      .setStatus("HTTP/1.1 " + responseCode + " " + responseStatus)
      .setBody(responseContent);
  server.enqueue(mockResponse);
  server.start();
  requestHeaders.put("User-Agent", "Parse Android SDK");
  String requestUrl = server.url("/").toString();
  JSONObject json = new JSONObject();
  json.put("key", "value");
  assertEquals(ParseHttpRequest.Method.POST.toString(), recordedApacheRequest.getMethod());
  Headers recordedApacheHeaders = recordedApacheRequest.getHeaders();
  Set<String> recordedApacheHeadersNames = recordedApacheHeaders.names();
  for (String name : parseRequest.getAllHeaders().keySet()) {
  assertEquals(requestContentLength, recordedApacheRequest.getBodySize());
  assertArrayEquals(requestContent.getBytes(), recordedApacheRequest.getBody().readByteArray());

代码示例来源:origin: facebook/stetho

@Test
public void testWithResponseCompression() throws IOException {
 ByteArrayOutputStream capturedOutput = hookAlmostRealInterpretResponseStream(mMockEventReporter);
 byte[] uncompressedData = repeat(".", 1024).getBytes();
 byte[] compressedData = compress(uncompressedData);
 MockWebServer server = new MockWebServer();
 server.start();
 server.enqueue(new MockResponse()
   .setBody(new Buffer().write(compressedData))
   .addHeader("Content-Encoding: gzip"));
 Request request = new Request.Builder()
   .url(server.url("/"))
   .build();
 Response response = mClientWithInterceptor.newCall(request).execute();
 // Verify that the final output and the caller both saw the uncompressed stream.
 assertArrayEquals(uncompressedData, response.body().bytes());
 assertArrayEquals(uncompressedData, capturedOutput.toByteArray());
 // And verify that the StethoInterceptor was able to see both.
 Mockito.verify(mMockEventReporter)
   .dataReceived(
     anyString(),
     eq(compressedData.length),
     eq(uncompressedData.length));
 server.shutdown();
}

代码示例来源:origin: SonarSource/sonarqube

@Test
public void use_proxy_authentication_wrong_crendentials() throws Exception {
 try (MockWebServer proxy = new MockWebServer()) {
  proxy.start();
  underTest = HttpConnector.newBuilder()
   .url(serverUrl)
   .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxy.getHostName(), proxy.getPort())))
   .proxyCredentials("theProxyLogin", "wrongPassword")
   .build();
  GetRequest request = new GetRequest("api/issues/search");
  proxy.enqueue(new MockResponse().setResponseCode(407));
  proxy.enqueue(new MockResponse().setResponseCode(407));
  proxy.enqueue(new MockResponse().setResponseCode(407));
  underTest.call(request);
  RecordedRequest recordedRequest = proxy.takeRequest();
  assertThat(recordedRequest.getHeader("Proxy-Authorization")).isNull();
  recordedRequest = proxy.takeRequest();
  assertThat(recordedRequest.getHeader("Proxy-Authorization")).isEqualTo(basic("theProxyLogin", "wrongPassword"));
  assertThat(proxy.getRequestCount()).isEqualTo(2);
 }
}

代码示例来源:origin: SonarSource/sonarqube

@Test
public void send_basic_authentication_header_if_url_contains_credentials() throws Exception {
 HttpUrl url = server.url("/ping").newBuilder().username("theLogin").password("thePassword").build();
 Webhook webhook = new Webhook(WEBHOOK_UUID, PROJECT_UUID, CE_TASK_UUID, RandomStringUtils.randomAlphanumeric(40),"my-webhook", url.toString());
 server.enqueue(new MockResponse().setBody("pong"));
 WebhookDelivery delivery = newSender().call(webhook, PAYLOAD);
 assertThat(delivery.getWebhook().getUrl())
  .isEqualTo(url.toString())
  .contains("://theLogin:thePassword@");
 RecordedRequest recordedRequest = takeAndVerifyPostRequest("/ping");
 assertThat(recordedRequest.getHeader("Authorization")).isEqualTo(Credentials.basic(url.username(), url.password()));
}

代码示例来源:origin: SonarSource/sonarqube

@Test
public void follow_redirects_post() throws IOException, InterruptedException {
 MockWebServer server2 = new MockWebServer();
 server2.start();
 server2.url("").url().toString();
 server.enqueue(new MockResponse()
  .setResponseCode(302)
  .setHeader("Location", server2.url("").url().toString()));
 server2.enqueue(new MockResponse()
  .setResponseCode(200));
 underTest = HttpConnector.newBuilder().url(serverUrl).build();
 PostRequest request = new PostRequest("api/ce/submit").setParam("projectKey", "project");
 WsResponse response = underTest.call(request);
 RecordedRequest recordedRequest = server2.takeRequest();
 assertThat(recordedRequest.getMethod()).isEqualTo("POST");
 assertThat(recordedRequest.getBody().readUtf8()).isEqualTo("projectKey=project");
 assertThat(response.requestUrl()).isEqualTo(server2.url("").url().toString());
 assertThat(response.code()).isEqualTo(200);
}

代码示例来源:origin: SonarSource/sonarqube

@Test
public void credentials_are_propagated_to_POST_redirects() throws Exception {
 HttpUrl url = server.url("/redirect").newBuilder().username("theLogin").password("thePassword").build();
 Webhook webhook = new Webhook(WEBHOOK_UUID, PROJECT_UUID, CE_TASK_UUID, RandomStringUtils.randomAlphanumeric(40),"my-webhook", url.toString());
 // /redirect redirects to /target
 server.enqueue(new MockResponse().setResponseCode(307).setHeader("Location", server.url("target")));
 server.enqueue(new MockResponse().setResponseCode(200));
 WebhookDelivery delivery = newSender().call(webhook, PAYLOAD);
 assertThat(delivery.getHttpStatus().get()).isEqualTo(200);
 RecordedRequest redirectedRequest = takeAndVerifyPostRequest("/redirect");
 assertThat(redirectedRequest.getHeader("Authorization")).isEqualTo(Credentials.basic(url.username(), url.password()));
 RecordedRequest targetRequest = takeAndVerifyPostRequest("/target");
 assertThat(targetRequest.getHeader("Authorization")).isEqualTo(Credentials.basic(url.username(), url.password()));
}

代码示例来源:origin: SonarSource/sonarqube

/**
 * Enqueue download of file with a MD5 that may not be returned (null) or not valid
 */
private void enqueueDownload(File file, @Nullable String md5) throws IOException {
 Buffer body = new Buffer();
 body.write(FileUtils.readFileToByteArray(file));
 MockResponse response = new MockResponse().setBody(body);
 if (md5 != null) {
  response.setHeader("Sonar-MD5", md5);
 }
 server.enqueue(response);
}

相关文章