java类okhttp3.mockwebserver.MockWebServer的实例源码

DisconnectTest.java 文件源码 项目:GitHub 阅读 18 收藏 0 点赞 0 评论 0
@Before public void setUp() throws Exception {
  // Sockets on some platforms can have large buffers that mean writes do not block when
  // required. These socket factories explicitly set the buffer sizes on sockets created.
  server = new MockWebServer();
  server.setServerSocketFactory(
      new DelegatingServerSocketFactory(ServerSocketFactory.getDefault()) {
        @Override protected ServerSocket configureServerSocket(
            ServerSocket serverSocket) throws IOException {
          serverSocket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return serverSocket;
        }
      });
  client = defaultClient().newBuilder()
      .socketFactory(new DelegatingSocketFactory(SocketFactory.getDefault()) {
        @Override protected Socket configureSocket(Socket socket) throws IOException {
          socket.setSendBufferSize(SOCKET_BUFFER_SIZE);
          socket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return socket;
        }
      })
      .build();
}
ThreadInterruptTest.java 文件源码 项目:GitHub 阅读 25 收藏 0 点赞 0 评论 0
@Before public void setUp() throws Exception {
  // Sockets on some platforms can have large buffers that mean writes do not block when
  // required. These socket factories explicitly set the buffer sizes on sockets created.
  server = new MockWebServer();
  server.setServerSocketFactory(
      new DelegatingServerSocketFactory(ServerSocketFactory.getDefault()) {
        @Override
        protected ServerSocket configureServerSocket(ServerSocket serverSocket)
            throws IOException {
          serverSocket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return serverSocket;
        }
      });
  client = defaultClient().newBuilder()
      .socketFactory(new DelegatingSocketFactory(SocketFactory.getDefault()) {
        @Override
        protected Socket configureSocket(Socket socket) throws IOException {
          socket.setSendBufferSize(SOCKET_BUFFER_SIZE);
          socket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return socket;
        }
      })
      .build();
}
ThreadInterruptTest.java 文件源码 项目:GitHub 阅读 55 收藏 0 点赞 0 评论 0
@Before public void setUp() throws Exception {
  // Sockets on some platforms can have large buffers that mean writes do not block when
  // required. These socket factories explicitly set the buffer sizes on sockets created.
  server = new MockWebServer();
  server.setServerSocketFactory(
      new DelegatingServerSocketFactory(ServerSocketFactory.getDefault()) {
        @Override
        protected ServerSocket configureServerSocket(ServerSocket serverSocket)
            throws IOException {
          serverSocket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return serverSocket;
        }
      });
  client = defaultClient().newBuilder()
      .socketFactory(new DelegatingSocketFactory(SocketFactory.getDefault()) {
        @Override
        protected Socket configureSocket(Socket socket) throws IOException {
          socket.setSendBufferSize(SOCKET_BUFFER_SIZE);
          socket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return socket;
        }
      })
      .build();
}
HttpUrlFetcherServerTest.java 文件源码 项目:GitHub 阅读 22 收藏 0 点赞 0 评论 0
@Test
public void testSetsReadTimeout() throws Exception {
  MockWebServer tempWebServer = new MockWebServer();
  tempWebServer.enqueue(
      new MockResponse().setBody("test").throttleBody(1, TIMEOUT_TIME_MS, TimeUnit.MILLISECONDS));
  tempWebServer.start();

  try {
    getFetcher().loadData(Priority.HIGH, callback);
  } finally {
    tempWebServer.shutdown();
    // shutdown() called before any enqueue() blocks until it times out.
    mockWebServer.enqueue(new MockResponse().setResponseCode(200));
  }

  verify(callback).onLoadFailed(isA(IOException.class));
}
JsonQueryParameters.java 文件源码 项目:GitHub 阅读 25 收藏 0 点赞 0 评论 0
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();
}
RetryableCallsTest.java 文件源码 项目:retryable-retrofit 阅读 19 收藏 0 点赞 0 评论 0
@Test public void retryableCallMustBeParameterized() throws InterruptedException {
  RetryableCalls retryableCalls = new RetryableCalls();
  MockWebServer server = new MockWebServer();
  Retrofit retrofit = new Retrofit.Builder()
      .baseUrl(server.url("/"))
      .addCallAdapterFactory(retryableCalls.getFactory())
      .addConverterFactory(new ToStringConverterFactory())
      .build();
  UnparameterizedService service = retrofit.create(UnparameterizedService.class);
  try {
    service.get();
    fail();
  } catch (IllegalArgumentException serviceMethodException) {
    assertThat(serviceMethodException.getCause()).hasMessageThat().isEqualTo(
        "RetryableCall return type must be parameterized "
            + "as RetryableCall<Foo> or RetryableCall<? extends Foo>");
  }
}
CustomTabTest.java 文件源码 项目:firefox-tv 阅读 24 收藏 0 点赞 0 评论 0
private void startWebServer() {
    final Context appContext = InstrumentationRegistry.getInstrumentation()
            .getTargetContext()
            .getApplicationContext();

    PreferenceManager.getDefaultSharedPreferences(appContext)
            .edit()
            .putBoolean(FIRSTRUN_PREF, true)
            .apply();

    webServer = new MockWebServer();

    try {
        webServer.enqueue(new MockResponse()
                .setBody(TestHelper.readTestAsset("plain_test.html")));
        webServer.start();
    } catch (IOException e) {
        throw new AssertionError("Could not start web server", e);
    }
}
CookiesTest.java 文件源码 项目:GitHub 阅读 22 收藏 0 点赞 0 评论 0
@Test public void testSendingCookiesFromStore() throws Exception {
  MockWebServer server = new MockWebServer();
  server.enqueue(new MockResponse());
  server.start();
  HttpUrl serverUrl = urlWithIpAddress(server, "/");

  CookieManager cookieManager = new CookieManager(null, ACCEPT_ORIGINAL_SERVER);
  HttpCookie cookieA = new HttpCookie("a", "android");
  cookieA.setDomain(serverUrl.host());
  cookieA.setPath("/");
  cookieManager.getCookieStore().add(serverUrl.uri(), cookieA);
  HttpCookie cookieB = new HttpCookie("b", "banana");
  cookieB.setDomain(serverUrl.host());
  cookieB.setPath("/");
  cookieManager.getCookieStore().add(serverUrl.uri(), cookieB);
  client = client.newBuilder()
      .cookieJar(new JavaNetCookieJar(cookieManager))
      .build();

  get(serverUrl);
  RecordedRequest request = server.takeRequest();

  assertEquals("a=android; b=banana", request.getHeader("Cookie"));
}
CookiesTest.java 文件源码 项目:GitHub 阅读 28 收藏 0 点赞 0 评论 0
@Test public void receiveAndSendMultipleCookies() throws Exception {
  MockWebServer server = new MockWebServer();
  server.enqueue(new MockResponse()
      .addHeader("Set-Cookie", "a=android")
      .addHeader("Set-Cookie", "b=banana"));
  server.enqueue(new MockResponse());
  server.start();

  CookieManager cookieManager = new CookieManager(null, ACCEPT_ORIGINAL_SERVER);
  client = client.newBuilder()
      .cookieJar(new JavaNetCookieJar(cookieManager))
      .build();

  get(urlWithIpAddress(server, "/"));
  RecordedRequest request1 = server.takeRequest();
  assertNull(request1.getHeader("Cookie"));

  get(urlWithIpAddress(server, "/"));
  RecordedRequest request2 = server.takeRequest();
  assertEquals("a=android; b=banana", request2.getHeader("Cookie"));
}
CookiesTest.java 文件源码 项目:GitHub 阅读 27 收藏 0 点赞 0 评论 0
@Test public void testCookiesSentIgnoresCase() throws Exception {
  client = client.newBuilder()
      .cookieJar(new JavaNetCookieJar(new CookieManager() {
        @Override public Map<String, List<String>> get(URI uri,
            Map<String, List<String>> requestHeaders) throws IOException {
          Map<String, List<String>> result = new LinkedHashMap<>();
          result.put("COOKIE", Collections.singletonList("Bar=bar"));
          result.put("cooKIE2", Collections.singletonList("Baz=baz"));
          return result;
        }
      }))
      .build();

  MockWebServer server = new MockWebServer();
  server.enqueue(new MockResponse());
  server.start();

  get(server.url("/"));

  RecordedRequest request = server.takeRequest();
  assertEquals("Bar=bar; Baz=baz", request.getHeader("Cookie"));
  assertNull(request.getHeader("Cookie2"));
  assertNull(request.getHeader("Quux"));
}
InfoActivityTest.java 文件源码 项目:smart-lens 阅读 21 收藏 0 点赞 0 评论 0
@Test
public void checkImageApiResponseFail() throws Exception {
    MockWebServer mockWebServer = startMockWebServer();
    //Success response for the info api
    mockWebServer.enqueue(new MockResponse()
            .setResponseCode(200)
            .setBody(getStringFromFile(InstrumentationRegistry.getInstrumentation().getContext(),
                    com.kevalpatel2106.smartlens.test.R.raw.wiki_info_success_response)));
    //Fail response for the image api.
    mockWebServer.enqueue(new MockResponse().setResponseCode(500));
    openActivity();

    //Wait for mock api
    Delay.startDelay(TestConfig.DELAY_FOR_MOCK_API);
    onView(withId(R.id.root_view)).perform(ViewActions.closeSoftKeyboard());

    //Check if there are text?
    assertTrue(mWikiFragmentFragmentTestRule.getActivity().mViewFlipper.getDisplayedChild() ==
            INFO_VIEW);
    onView(withId(R.id.wiki_page_tv)).check(ViewAssertions.matches(CustomMatchers.hasText()));
    onView(withId(R.id.wiki_page_iv)).check(ViewAssertions.matches(not(CustomMatchers.hasImage())));

    Delay.stopDelay();
    mockWebServer.shutdown();
}
HttpUrlFetcherServerTest.java 文件源码 项目:GitHub 阅读 26 收藏 0 点赞 0 评论 0
@Test
public void testSetsReadTimeout() throws Exception {
  MockWebServer tempWebServer = new MockWebServer();
  tempWebServer.enqueue(
      new MockResponse().setBody("test").throttleBody(1, TIMEOUT_TIME_MS, TimeUnit.MILLISECONDS));
  tempWebServer.start();

  try {
    getFetcher().loadData(Priority.HIGH, callback);
  } finally {
    tempWebServer.shutdown();
    // shutdown() called before any enqueue() blocks until it times out.
    mockWebServer.enqueue(new MockResponse().setResponseCode(200));
  }

  verify(callback).onLoadFailed(isA(IOException.class));
}
InfoActivityTest.java 文件源码 项目:smart-lens 阅读 23 收藏 0 点赞 0 评论 0
@Test
public void checkInfoApiResponseFail() throws Exception {
    MockWebServer mockWebServer = startMockWebServer();
    //Fail response for the info api.
    mockWebServer.enqueue(new MockResponse().setResponseCode(500));
    //Success response for the image api.
    mockWebServer.enqueue(new MockResponse()
            .setResponseCode(200)
            .setBody(getStringFromFile(InstrumentationRegistry.getInstrumentation().getContext(),
                    com.kevalpatel2106.smartlens.test.R.raw.wiki_image_success_response)));
    openActivity();

    //Wait for mock api
    Delay.startDelay(TestConfig.DELAY_FOR_MOCK_API);
    onView(withId(R.id.root_view)).perform(ViewActions.closeSoftKeyboard());

    //Check if error occurred?
    assertTrue(mWikiFragmentFragmentTestRule.getActivity().mViewFlipper.getDisplayedChild() ==
            ERROR_VIEW);

    Delay.stopDelay();
    mockWebServer.shutdown();
}
ServiceInvokerTest.java 文件源码 项目:JavaSDK 阅读 21 收藏 0 点赞 0 评论 0
@BeforeMethod
public void setUp() throws Exception {
  server = new MockWebServer();
  server.start(18080);
  server.enqueue(new MockResponse().setResponseCode(200).setBody("{\n" +
      "  \"access_token\": \"testAccessToken\",\n" +
      "  \"expires_in\": 1,\n" +
      "  \"token_type\": \"Bearer\"\n" +
      "}"));
  server.enqueue(new MockResponse().setResponseCode(401).setBody("{\n" +
      "\"message\": \"Unauthorized\"\n" +
      "}"));
  server.enqueue(new MockResponse().setResponseCode(200).setBody("{\n" +
      "  \"access_token\": \"<Your access token here>\",\n" +
      "  \"expires_in\": 1,\n" +
      "  \"token_type\": \"Bearer\"\n" +
      "}"));
  server.enqueue(new MockResponse().setResponseCode(200).setBody("{}"));
  server.enqueue(new MockResponse().setResponseCode(200).setBody("{}"));
}
CookiesTest.java 文件源码 项目:GitHub 阅读 21 收藏 0 点赞 0 评论 0
@Test public void testCookiesSentIgnoresCase() throws Exception {
  client = client.newBuilder()
      .cookieJar(new JavaNetCookieJar(new CookieManager() {
        @Override public Map<String, List<String>> get(URI uri,
            Map<String, List<String>> requestHeaders) throws IOException {
          Map<String, List<String>> result = new LinkedHashMap<>();
          result.put("COOKIE", Collections.singletonList("Bar=bar"));
          result.put("cooKIE2", Collections.singletonList("Baz=baz"));
          return result;
        }
      }))
      .build();

  MockWebServer server = new MockWebServer();
  server.enqueue(new MockResponse());
  server.start();

  get(server.url("/"));

  RecordedRequest request = server.takeRequest();
  assertEquals("Bar=bar; Baz=baz", request.getHeader("Cookie"));
  assertNull(request.getHeader("Cookie2"));
  assertNull(request.getHeader("Quux"));
}
DisconnectTest.java 文件源码 项目:GitHub 阅读 21 收藏 0 点赞 0 评论 0
@Before public void setUp() throws Exception {
  // Sockets on some platforms can have large buffers that mean writes do not block when
  // required. These socket factories explicitly set the buffer sizes on sockets created.
  server = new MockWebServer();
  server.setServerSocketFactory(
      new DelegatingServerSocketFactory(ServerSocketFactory.getDefault()) {
        @Override protected ServerSocket configureServerSocket(
            ServerSocket serverSocket) throws IOException {
          serverSocket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return serverSocket;
        }
      });
  client = defaultClient().newBuilder()
      .socketFactory(new DelegatingSocketFactory(SocketFactory.getDefault()) {
        @Override protected Socket configureSocket(Socket socket) throws IOException {
          socket.setSendBufferSize(SOCKET_BUFFER_SIZE);
          socket.setReceiveBufferSize(SOCKET_BUFFER_SIZE);
          return socket;
        }
      })
      .build();
}
Benchmark.java 文件源码 项目:GitHub 阅读 27 收藏 0 点赞 0 评论 0
private MockWebServer startServer() throws IOException {
  Logger.getLogger(MockWebServer.class.getName()).setLevel(Level.WARNING);
  MockWebServer server = new MockWebServer();

  if (tls) {
    SslClient sslClient = SslClient.localhost();
    server.useHttps(sslClient.socketFactory, false);
    server.setProtocols(protocols);
  }

  final MockResponse response = newResponse();
  server.setDispatcher(new Dispatcher() {
    @Override public MockResponse dispatch(RecordedRequest request) {
      return response;
    }
  });

  server.start();
  return server;
}
JsonAndXmlConverters.java 文件源码 项目:GitHub 阅读 19 收藏 0 点赞 0 评论 0
public static void main(String... args) throws IOException {
  MockWebServer server = new MockWebServer();
  server.start();
  server.enqueue(new MockResponse().setBody("{\"name\": \"Jason\"}"));
  server.enqueue(new MockResponse().setBody("<user name=\"Eximel\"/>"));

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

  User user1 = service.exampleJson().execute().body();
  System.out.println("User 1: " + user1.name);

  User user2 = service.exampleXml().execute().body();
  System.out.println("User 2: " + user2.name);

  server.shutdown();
}
IssueDetailsTest.java 文件源码 项目:civify-app 阅读 20 收藏 0 点赞 0 评论 0
@Before
public void setUp() throws ParseException {
    mMockWebServer = new MockWebServer();
    try {
        mMockWebServer.start();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
            .setDateFormat(ServiceGenerator.RAILS_DATE_FORMAT)
            .create();
    Retrofit retrofit = new Retrofit.Builder().baseUrl(mMockWebServer.url("").toString())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
    IssueService issueService = retrofit.create(IssueService.class);
    IssueAdapter issueAdapter =
            AdapterFactory.getInstance().getIssueAdapter(getTargetContext());
    issueAdapter.setService(issueService);
}
RewardsFragmentTest.java 文件源码 项目:civify-app 阅读 22 收藏 0 点赞 0 评论 0
@Before
public void setUp() throws ParseException {
    sMockWebServer = new MockWebServer();
    try {
        sMockWebServer.start();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
            .setDateFormat(ServiceGenerator.RAILS_DATE_FORMAT)
            .create();
    Retrofit retrofit = new Retrofit.Builder().baseUrl(sMockWebServer.url("").toString())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
    IssueService issueService = retrofit.create(IssueService.class);
    IssueAdapter issueAdapter =
            AdapterFactory.getInstance().getIssueAdapter(getTargetContext());
    issueAdapter.setService(issueService);
}
AwardAdapterImplTest.java 文件源码 项目:civify-app 阅读 23 收藏 0 点赞 0 评论 0
@Before
public void setUp() throws IOException, ParseException {
    setUpAward();
    mMockWebServer = new MockWebServer();
    mMockWebServer.start();
    mGson = new GsonBuilder()
            .excludeFieldsWithoutExposeAnnotation()
            .setDateFormat(ServiceGenerator.RAILS_DATE_FORMAT)
            .create();
    Retrofit retrofit = new Retrofit.Builder().baseUrl(mMockWebServer.url("").toString())
            .addConverterFactory(GsonConverterFactory.create(mGson)).build();
    AwardService awardService = retrofit.create(AwardService.class);
    SharedPreferences sharedPreferences = mock(SharedPreferences.class);
    mListAwardsSimpleCallbackMock = mock(ListAwardsSimpleCallback.class);
    mAwardSimpleCallbackMock = mock(AwardSimpleCallback.class);
    mAwardAdapter = new AwardAdapterImpl(awardService, sharedPreferences);
    mListExchangedAwardSimpleCallback = mock(ListExchangedAwardSimpleCallback.class);
}
LoginAdapterImplTest.java 文件源码 项目:civify-app 阅读 22 收藏 0 点赞 0 评论 0
@Before
public void setUp() throws IOException {
    mMockServer = new MockWebServer();
    mMockServer.start();
    Retrofit retrofit = (new Retrofit.Builder().baseUrl(mMockServer.url("").toString())
            .addConverterFactory(ScalarsConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())).build();
    CivifyLoginService civifyLoginService = retrofit.create(CivifyLoginService.class);
    CivifyMeService civifyMeService = retrofit.create(CivifyMeService.class);
    SharedPreferences.Editor editor = mock(SharedPreferences.Editor.class);
    mSharedPreferences = mock(SharedPreferences.class);
    mLoginFinishedCallbackMock = mock(LoginFinishedCallback.class);
    when(mSharedPreferences.edit()).thenReturn(editor);
    mUser = new User("username", "name", "surname",
            "email", "password", "password");
    mLoginAdapter =
            new LoginAdapterImpl(civifyLoginService, civifyMeService, mSharedPreferences);
}
TimedCallAdapterFactoryTest.java 文件源码 项目:retrofit-metrics 阅读 23 收藏 0 点赞 0 评论 0
@Before
public void before() throws IOException {
    metrics = new MetricRegistry();
    server = new MockWebServer();
    server.start();

    MockResponse response = new MockResponse();
    response.setBody(RESPONSE_BODY);
    server.enqueue(response);

    retrofit = new Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(new TimedCallAdapterFactory(metrics))
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .baseUrl(server.url("/").toString())
            .build();
}
MediaApiServiceTest.java 文件源码 项目:chaosflix-leanback 阅读 21 收藏 0 点赞 0 评论 0
@BeforeClass
public static void setup() throws IOException, TimeoutException {
    server = new MockWebServer();
    server.start();
    serverUrl = server.url("").toString();

    Intent s = new Intent(InstrumentationRegistry.getTargetContext(),
            MediaApiService.class);
    s.putExtra(MediaApiService.RECORDING_URL,serverUrl);
    s.putExtra(MediaApiService.STREAMING_URL,serverUrl);
    IBinder binder = mServiceRule.bindService(s);
    service = ((MediaApiService.LocalBinder) binder).getService();
}
AddtoHSTest.java 文件源码 项目:firefox-tv 阅读 57 收藏 0 点赞 0 评论 0
@Override
protected void beforeActivityLaunched() {
    super.beforeActivityLaunched();

    appContext = InstrumentationRegistry.getInstrumentation()
            .getTargetContext()
            .getApplicationContext();

    PreferenceManager.getDefaultSharedPreferences(appContext)
            .edit()
            .putBoolean(FIRSTRUN_PREF, true)
            .apply();

    webServer = new MockWebServer();

    try {
        webServer.enqueue(new MockResponse()
                .setBody(TestHelper.readTestAsset("plain_test.html")));
        webServer.enqueue(new MockResponse()
                .setBody(TestHelper.readTestAsset("plain_test.html")));

        webServer.start();
    } catch (IOException e) {
        throw new AssertionError("Could not start web server", e);
    }
}
VolleyStreamFetcherServerTest.java 文件源码 项目:GitHub 阅读 27 收藏 0 点赞 0 评论 0
@Before
public void setUp() throws IOException {
  MockitoAnnotations.initMocks(this);

  waitForResponseLatch = new CountDownLatch(1);
  doAnswer(new CountDown()).when(callback).onDataReady(any(InputStream.class));
  doAnswer(new CountDown()).when(callback).onLoadFailed(any(Exception.class));
  requestQueue = Volley.newRequestQueue(RuntimeEnvironment.application);
  mockWebServer = new MockWebServer();
  mockWebServer.start();

  streamCaptor = ArgumentCaptor.forClass(InputStream.class);
}
GoogleApiClientTest.java 文件源码 项目:google-oauth-authorization-plugin 阅读 27 收藏 0 点赞 0 评论 0
@Before
public void setUp() throws Exception {
    initMocks(this);

    server = new MockWebServer();
    server.start();

    when(googleConfiguration.clientId()).thenReturn("client-id");
    when(googleConfiguration.clientSecret()).thenReturn("client-secret");

    CallbackURL.instance().updateRedirectURL("callback-url");

    googleApiClient = new GoogleApiClient(googleConfiguration);
}
HomePresenterTest.java 文件源码 项目:GitHub 阅读 27 收藏 0 点赞 0 评论 0
@Before public void beforeEachTest() throws Exception {
  mockWebServer = new MockWebServer();
  mockWebServer.start();

  // Set the apps url to the local mock server
  DependencyInjection.BASE_URL = mockWebServer.url("").toString();
}
AnnotatedConverters.java 文件源码 项目:GitHub 阅读 33 收藏 0 点赞 0 评论 0
public static void main(String... args) throws IOException {
  MockWebServer server = new MockWebServer();
  server.start();
  server.enqueue(new MockResponse().setBody("{\"name\": \"Moshi\"}"));
  server.enqueue(new MockResponse().setBody("{\"name\": \"Gson\"}"));
  server.enqueue(new MockResponse().setBody("<user name=\"SimpleXML\"/>"));
  server.enqueue(new MockResponse().setBody("{\"name\": \"Gson\"}"));

  com.squareup.moshi.Moshi moshi = new com.squareup.moshi.Moshi.Builder().build();
  com.google.gson.Gson gson = new GsonBuilder().create();
  MoshiConverterFactory moshiConverterFactory = MoshiConverterFactory.create(moshi);
  GsonConverterFactory gsonConverterFactory = GsonConverterFactory.create(gson);
  SimpleXmlConverterFactory simpleXmlConverterFactory = SimpleXmlConverterFactory.create();
  Retrofit retrofit = new Retrofit.Builder().baseUrl(server.url("/"))
      .addConverterFactory(
          new AnnotatedConverterFactory.Builder().add(Moshi.class, moshiConverterFactory)
              .add(Gson.class, gsonConverterFactory)
              .add(SimpleXml.class, simpleXmlConverterFactory)
              .build())
      .addConverterFactory(gsonConverterFactory)
      .build();
  Service service = retrofit.create(Service.class);

  Library library1 = service.exampleMoshi().execute().body();
  System.out.println("Library 1: " + library1.name);

  Library library2 = service.exampleGson().execute().body();
  System.out.println("Library 2: " + library2.name);

  Library library3 = service.exampleSimpleXml().execute().body();
  System.out.println("Library 3: " + library3.name);

  Library library4 = service.exampleDefault().execute().body();
  System.out.println("Library 4: " + library4.name);

  server.shutdown();
}
DeserializeErrorBody.java 文件源码 项目:GitHub 阅读 35 收藏 0 点赞 0 评论 0
public static void main(String... args) throws IOException {
  // Create a local web server which response with a 404 and JSON body.
  MockWebServer server = new MockWebServer();
  server.start();
  server.enqueue(new MockResponse()
      .setResponseCode(404)
      .setBody("{\"message\":\"Unable to locate resource\"}"));

  // Create our Service instance with a Retrofit pointing at the local web server and Gson.
  Retrofit retrofit = new Retrofit.Builder()
      .baseUrl(server.url("/"))
      .addConverterFactory(GsonConverterFactory.create())
      .build();
  Service service = retrofit.create(Service.class);

  Response<User> response = service.getUser().execute();

  // Normally you would check response.isSuccess() here before doing the following, but we know
  // this call will always fail. You could also use response.code() to determine whether to
  // convert the error body and/or which type to use for conversion.

  // Look up a converter for the Error type on the Retrofit instance.
  Converter<ResponseBody, Error> errorConverter =
      retrofit.responseBodyConverter(Error.class, new Annotation[0]);
  // Convert the error body into our Error type.
  Error error = errorConverter.convert(response.errorBody());
  System.out.println("ERROR: " + error.message);

  server.shutdown();
}


问题


面经


文章

微信
公众号

扫码关注公众号