Skip to content

Commit 9334050

Browse files
committed
Add request introspection endpoints
1 parent bf930bf commit 9334050

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ httpbin.org.
1111

1212
Java httpbin supports a subset of httpbin endpoints:
1313

14+
- `/ip` Returns Origin IP.
15+
- `/user-agent` Returns user-agent.
16+
- `/headers` Returns headers.
1417
- `/get` Returns GET data.
1518
- `/post` Returns POST data.
1619
- `/patch` Returns PATCH data.

src/main/java/org/gaul/httpbin/HttpBinHandler.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,30 @@ public void handle(String target, Request baseRequest,
6464
servletResponse.setStatus(status);
6565
baseRequest.setHandled(true);
6666
return;
67+
} else if (method.equals("GET") && uri.equals("/headers")) {
68+
JSONObject headers = new JSONObject();
69+
for (String headerName : Collections.list(
70+
request.getHeaderNames())) {
71+
headers.put(headerName, request.getHeader(headerName));
72+
}
73+
74+
JSONObject response = new JSONObject();
75+
response.put("headers", headers);
76+
respondJSON(servletResponse, os, response);
77+
baseRequest.setHandled(true);
78+
return;
79+
} else if (method.equals("GET") && uri.equals("/ip")) {
80+
JSONObject response = new JSONObject();
81+
response.put("origin", request.getRemoteAddr());
82+
respondJSON(servletResponse, os, response);
83+
baseRequest.setHandled(true);
84+
return;
85+
} else if (method.equals("GET") && uri.equals("/user-agent")) {
86+
JSONObject response = new JSONObject();
87+
response.put("user-agent", request.getHeader("User-Agent"));
88+
respondJSON(servletResponse, os, response);
89+
baseRequest.setHandled(true);
90+
return;
6791
} else if (method.equals("GET") && uri.equals("/get")) {
6892
Utils.copy(is, Utils.NULL_OUTPUT_STREAM);
6993
// TODO: return JSON blob of request

0 commit comments

Comments
 (0)