Skip to content

Commit c333183

Browse files
committed
Add network details flags in manifest for sentry-samples test app
1 parent ae5dda3 commit c333183

File tree

2 files changed

+43
-6
lines changed

2 files changed

+43
-6
lines changed

sentry-samples/sentry-samples-android/src/main/AndroidManifest.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,5 +192,16 @@
192192
<meta-data android:name="io.sentry.session-replay.screenshot-strategy" android:value="canvas" />
193193
<meta-data android:name="io.sentry.session-replay.session-sample-rate" android:value="1" />
194194
<meta-data android:name="io.sentry.session-replay.mask-all-text" android:value="true" />
195+
196+
<!-- Testing Network Details -->
197+
<!-- Catpure network details for all urls -->
198+
<meta-data android:name="io.sentry.session-replay.network-detail-allow-urls" android:value=".*" />
199+
<!-- Exclude any url with the substring 'deny' -->
200+
<meta-data android:name="io.sentry.session-replay.network-detail-deny-urls" android:value=".*deny.*" />
201+
<!-- Disable network body capture for urls specified in .network-detail-allow-urls -->
202+
<!-- <meta-data android:name="io.sentry.session-replay.network-capture-bodies" android:value="false" />-->
203+
<!-- Some random headers to extract. See TriggerHttpRequestActivity to set these on a test http request -->
204+
<meta-data android:name="io.sentry.session-replay.network-request-headers" android:value="Authorization,X-Custom-Header,X-Test-Request,blah, blee" />
205+
<meta-data android:name="io.sentry.session-replay.network-response-headers" android:value="X-Response-Time,X-Cache-Status,X-Test-Response" />
195206
</application>
196207
</manifest>

sentry-samples/sentry-samples-android/src/main/java/io/sentry/samples/android/TriggerHttpRequestActivity.java

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ private void performGetRequest() {
117117
.get()
118118
.addHeader("User-Agent", "Sentry-Sample-Android")
119119
.addHeader("Accept", "application/json")
120+
// Test headers for network detail filtering
121+
.addHeader("Authorization", "Bearer test-token-12345")
122+
.addHeader("X-Custom-Header", "custom-value-for-testing")
123+
.addHeader("X-Test-Request", "network-detail-test")
120124
.build();
121125

122126
displayRequest("GET", request);
@@ -196,10 +200,23 @@ public void onResponse(Call call, Response response) throws IOException {
196200
final long responseTime = System.currentTimeMillis() - startTime;
197201
final String finalBody = body;
198202

203+
// Capture response headers for network detail testing
204+
final StringBuilder responseHeaders = new StringBuilder();
205+
for (int i = 0; i < response.headers().size(); i++) {
206+
responseHeaders
207+
.append(" ")
208+
.append(response.headers().name(i))
209+
.append(": ")
210+
.append(response.headers().value(i))
211+
.append("\n");
212+
}
213+
final String finalResponseHeaders = responseHeaders.toString();
214+
199215
runOnUiThread(
200216
() -> {
201217
showLoading(false);
202-
displayResponse(statusMessage, statusCode, finalBody, responseTime);
218+
displayResponse(
219+
statusMessage, statusCode, finalBody, responseTime, finalResponseHeaders);
203220
});
204221

205222
response.close();
@@ -237,27 +254,36 @@ private void displayRequest(String method, Request request, String body) {
237254
}
238255

239256
private void displayResponse(String status, Integer code, String body, long responseTime) {
257+
displayResponse(status, code, body, responseTime, null);
258+
}
259+
260+
private void displayResponse(
261+
String status, Integer code, String body, long responseTime, String headers) {
240262
StringBuilder sb = new StringBuilder();
241263
sb.append("[").append(getCurrentTime()).append("]\n");
242264
sb.append("━━━━━━━━━━━━━━━━━━━━━━━━\n");
243265

244266
if (code != null) {
245267
sb.append("STATUS: ").append(code).append(" ").append(status).append("\n");
246-
sb.append("RESPONSE TIME: ").append(responseTime).append("ms\n\n");
268+
sb.append("RESPONSE TIME: ").append(responseTime).append("ms\n");
247269
} else {
248-
sb.append("STATUS: ").append(status).append("\n\n");
270+
sb.append("STATUS: ").append(status).append("\n");
271+
}
272+
273+
if (headers != null && !headers.isEmpty()) {
274+
sb.append("\nRESPONSE HEADERS:\n").append(headers);
249275
}
250276

251277
if (body != null && !body.isEmpty()) {
252278
try {
253279
if (body.trim().startsWith("{") || body.trim().startsWith("[")) {
254280
JSONObject json = new JSONObject(body);
255-
sb.append("BODY (JSON):\n").append(json.toString(2));
281+
sb.append("\nBODY (JSON):\n").append(json.toString(2));
256282
} else {
257-
sb.append("BODY:\n").append(body);
283+
sb.append("\nBODY:\n").append(body);
258284
}
259285
} catch (Exception e) {
260-
sb.append("BODY:\n").append(body);
286+
sb.append("\nBODY:\n").append(body);
261287
}
262288
}
263289

0 commit comments

Comments
 (0)