use of okhttp3.logging.HttpLoggingInterceptor.Level in project EhViewer by seven332.
the class CookieRepositoryTest method testGet.
@Test
public void testGet() throws InterruptedException {
Context app = RuntimeEnvironment.application;
HttpUrl urlEh1 = HttpUrl.parse("http://www.ehviewer.com/");
HttpUrl urlEh2 = HttpUrl.parse("http://ehviewer.com/");
Cookie cookieEh1 = new Cookie.Builder().name("user").value("1234567890").domain("ehviewer.com").path("/").expiresAt(System.currentTimeMillis() + 3000).build();
Cookie cookieEh2 = new Cookie.Builder().name("level").value("999").domain("www.ehviewer.com").path("/").build();
Cookie cookieEh3 = new Cookie.Builder().name("speed").value("10").domain("ehviewer.com").path("/").build();
HttpUrl urlNMB = HttpUrl.parse("http://h.nimingban.com/");
Cookie cookieNMB = new Cookie.Builder().name("hash").value("0987654321").domain("nimingban.com").path("/").build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(urlEh1, Arrays.asList(cookieEh1, cookieEh2));
repository.saveFromResponse(urlEh1, Collections.singletonList(cookieEh3));
repository.saveFromResponse(urlNMB, Collections.singletonList(cookieNMB));
equals(Arrays.asList(cookieEh1, cookieEh3), repository.loadForRequest(null));
Thread.sleep(3000);
equals(Collections.singletonList(cookieEh3), repository.loadForRequest(null));
repository.close();
}
use of okhttp3.logging.HttpLoggingInterceptor.Level in project BaseProject by fly803.
the class RetrofitRequestManager method genericClient.
public static OkHttpClient genericClient() {
/**
* 类型为BASIC,其实日志级别分为4类:NONE、BASIC、HEADERS、BODY。
* 大家看下我打印出来的日志,就知道这4类的区别了。
* 1、NONE
* 没有任何log
* 2、BASIC
* 请求/响应行
* basic的格式:
* --> POST 地址 http/1.1 (0-byte body)
* <-- 200 OK 地址 (154ms, unknown-length body)
* 3、HEADERS
* 请求/响应行 + 头
* 4、BODY
* 请求/响应行 + 头 + 体
*/
final OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(5, TimeUnit.SECONDS);
builder.readTimeout(10, TimeUnit.SECONDS);
builder.writeTimeout(5, TimeUnit.SECONDS);
// 错误重连
builder.retryOnConnectionFailure(true);
// 新建log拦截器
final HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.w(BaseProjectConfig.TAG, "genericClient log: " + message);
}
});
HttpLoggingInterceptor.Level level = HttpLoggingInterceptor.Level.BASIC;
loggingInterceptor.setLevel(level);
if (BaseProjectConfig.isNetRequestInterceptor) {
// 添加retrofit日志打印 }
builder.addInterceptor(loggingInterceptor);
}
if (BaseProjectConfig.isBaseURLInterceptor) {
builder.addInterceptor(new BaseUrlInterceptor());
}
if (BaseProjectConfig.isHeaderInterceptor) {
builder.addInterceptor(new HeaderInterceptor());
}
OkHttpClient httpClient = builder.build();
return httpClient;
}
use of okhttp3.logging.HttpLoggingInterceptor.Level in project android-diplicity by zond.
the class RetrofitActivity method recreateServices.
protected void recreateServices() {
AuthenticatingCallAdapterFactory adapterFactory = new AuthenticatingCallAdapterFactory();
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request toIssue = chain.request().newBuilder().addHeader("Accept", "application/json; charset=UTF-8").addHeader("X-Diplicity-Client-Version", "" + BuildConfig.VERSION_CODE).addHeader("X-Diplicity-Client-Name", "" + CLIENT_NAME).addHeader("X-Diplicity-API-Level", "" + DIPLICITY_API_LEVEL).build();
if (getLocalDevelopmentMode() && !getLocalDevelopmentModeFakeID().equals("")) {
HttpUrl url = toIssue.url().newBuilder().addQueryParameter("fake-id", getLocalDevelopmentModeFakeID()).build();
toIssue = toIssue.newBuilder().url(url).build();
} else if (!getAuthToken().equals("")) {
toIssue = toIssue.newBuilder().addHeader("Authorization", "bearer " + getAuthToken()).build();
}
Log.d("Diplicity", "" + toIssue.method() + "ing " + toIssue.url());
return chain.proceed(toIssue);
}
});
builder.connectTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS).readTimeout(10, TimeUnit.SECONDS);
Gson gson = new GsonBuilder().registerTypeAdapter(Ticker.class, new TickerUnserializer()).registerTypeAdapter(Game.class, new GameUnserializer(this)).create();
Retrofit retrofit = new Retrofit.Builder().baseUrl(getBaseURL()).addConverterFactory(GsonConverterFactory.create(gson)).addCallAdapterFactory(adapterFactory).client(builder.build()).build();
gameService = retrofit.create(GameService.class);
userStatsService = retrofit.create(UserStatsService.class);
memberService = retrofit.create(MemberService.class);
rootService = retrofit.create(RootService.class);
variantService = retrofit.create(VariantService.class);
optionsService = retrofit.create(OptionsService.class);
orderService = retrofit.create(OrderService.class);
phaseService = retrofit.create(PhaseService.class);
channelService = retrofit.create(ChannelService.class);
messageService = retrofit.create(MessageService.class);
phaseResultService = retrofit.create(PhaseResultService.class);
gameResultService = retrofit.create(GameResultService.class);
phaseStateService = retrofit.create(PhaseStateService.class);
gameStateService = retrofit.create(GameStateService.class);
userConfigService = retrofit.create(UserConfigService.class);
banService = retrofit.create(BanService.class);
}
use of okhttp3.logging.HttpLoggingInterceptor.Level in project okhttp by square.
the class HttpLoggingInterceptor method intercept.
@Override
public Response intercept(Chain chain) throws IOException {
Level level = this.level;
Request request = chain.request();
if (level == Level.NONE) {
return chain.proceed(request);
}
boolean logBody = level == Level.BODY;
boolean logHeaders = logBody || level == Level.HEADERS;
RequestBody requestBody = request.body();
boolean hasRequestBody = requestBody != null;
Connection connection = chain.connection();
Protocol protocol = connection != null ? connection.protocol() : Protocol.HTTP_1_1;
String requestStartMessage = "--> " + request.method() + ' ' + request.url() + ' ' + protocol;
if (!logHeaders && hasRequestBody) {
requestStartMessage += " (" + requestBody.contentLength() + "-byte body)";
}
logger.log(requestStartMessage);
if (logHeaders) {
if (hasRequestBody) {
// them to be included (when available) so there values are known.
if (requestBody.contentType() != null) {
logger.log("Content-Type: " + requestBody.contentType());
}
if (requestBody.contentLength() != -1) {
logger.log("Content-Length: " + requestBody.contentLength());
}
}
Headers headers = request.headers();
for (int i = 0, count = headers.size(); i < count; i++) {
String name = headers.name(i);
// Skip headers from the request body as they are explicitly logged above.
if (!"Content-Type".equalsIgnoreCase(name) && !"Content-Length".equalsIgnoreCase(name)) {
logger.log(name + ": " + headers.value(i));
}
}
if (!logBody || !hasRequestBody) {
logger.log("--> END " + request.method());
} else if (bodyEncoded(request.headers())) {
logger.log("--> END " + request.method() + " (encoded body omitted)");
} else {
Buffer buffer = new Buffer();
requestBody.writeTo(buffer);
Charset charset = UTF8;
MediaType contentType = requestBody.contentType();
if (contentType != null) {
charset = contentType.charset(UTF8);
}
logger.log("");
if (isPlaintext(buffer)) {
logger.log(buffer.readString(charset));
logger.log("--> END " + request.method() + " (" + requestBody.contentLength() + "-byte body)");
} else {
logger.log("--> END " + request.method() + " (binary " + requestBody.contentLength() + "-byte body omitted)");
}
}
}
long startNs = System.nanoTime();
Response response;
try {
response = chain.proceed(request);
} catch (Exception e) {
logger.log("<-- HTTP FAILED: " + e);
throw e;
}
long tookMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs);
ResponseBody responseBody = response.body();
long contentLength = responseBody.contentLength();
String bodySize = contentLength != -1 ? contentLength + "-byte" : "unknown-length";
logger.log("<-- " + response.code() + ' ' + response.message() + ' ' + response.request().url() + " (" + tookMs + "ms" + (!logHeaders ? ", " + bodySize + " body" : "") + ')');
if (logHeaders) {
Headers headers = response.headers();
for (int i = 0, count = headers.size(); i < count; i++) {
logger.log(headers.name(i) + ": " + headers.value(i));
}
if (!logBody || !HttpHeaders.hasBody(response)) {
logger.log("<-- END HTTP");
} else if (bodyEncoded(response.headers())) {
logger.log("<-- END HTTP (encoded body omitted)");
} else {
BufferedSource source = responseBody.source();
// Buffer the entire body.
source.request(Long.MAX_VALUE);
Buffer buffer = source.buffer();
Charset charset = UTF8;
MediaType contentType = responseBody.contentType();
if (contentType != null) {
charset = contentType.charset(UTF8);
}
if (!isPlaintext(buffer)) {
logger.log("");
logger.log("<-- END HTTP (binary " + buffer.size() + "-byte body omitted)");
return response;
}
if (contentLength != 0) {
logger.log("");
logger.log(buffer.clone().readString(charset));
}
logger.log("<-- END HTTP (" + buffer.size() + "-byte body)");
}
}
return response;
}
use of okhttp3.logging.HttpLoggingInterceptor.Level in project sonarqube by SonarSource.
the class CeHttpClientTest method changeLogLevel_throws_ISE_if_http_error.
@Test
public void changeLogLevel_throws_ISE_if_http_error() {
String message = "blah";
server.enqueue(new MockResponse().setResponseCode(500).setBody(message));
// initialize registration of process
setUpWithHttpUrl(ProcessId.COMPUTE_ENGINE);
expectedException.expect(IllegalStateException.class);
expectedException.expectMessage("Failed to call HTTP server of process " + ProcessId.COMPUTE_ENGINE);
expectedException.expectCause(hasType(IOException.class).andMessage(format("Failed to change log level in Compute Engine. Code was '500' and response was 'blah' for url " + "'http://%s:%s/changeLogLevel'", server.getHostName(), server.getPort())));
underTest.changeLogLevel(LoggerLevel.DEBUG);
}
Aggregations