@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();
}
java类okhttp3.mockwebserver.MockWebServer的实例源码
DisconnectTest.java 文件源码
项目:GitHub
阅读 18
收藏 0
点赞 0
评论 0
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();
}