本文整理了Java中okhttp3.mockwebserver.MockResponse
类的一些代码示例,展示了MockResponse
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MockResponse
类的具体详情如下:
包路径:okhttp3.mockwebserver.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);
}
内容来源于网络,如有侵权,请联系作者删除!