Skip to content

Commit b4be2bd

Browse files
committed
api Issue 836: Should clear URI query params when moving large URIs to POST
https://codereview.appspot.com/13437043/
1 parent f126fc7 commit b4be2bd

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

google-api-client/src/main/java/com/google/api/client/googleapis/MethodOverride.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ public void intercept(HttpRequest request) throws IOException {
9696
request.getHeaders().set(HEADER, requestMethod);
9797
if (requestMethod.equals(HttpMethods.GET)) {
9898
// take the URI query part and put it into the HTTP body
99-
request.setContent(new UrlEncodedContent(request.getUrl()));
99+
request.setContent(new UrlEncodedContent(request.getUrl().clone()));
100+
// remove query parameters from URI
101+
request.getUrl().clear();
100102
} else if (request.getContent() == null) {
101103
// Google servers will fail to process a POST unless the Content-Length header is specified
102104
request.setContent(new EmptyContent());

google-api-client/src/test/java/com/google/api/client/googleapis/MethodOverrideTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public void testInterceptMaxLength() throws IOException {
9595
new MethodOverride().intercept(request);
9696
assertEquals(HttpMethods.POST, request.getRequestMethod());
9797
assertEquals(HttpMethods.GET, request.getHeaders().get(MethodOverride.HEADER));
98+
assertEquals(HttpTesting.SIMPLE_GENERIC_URL, request.getUrl());
9899
char[] arr2 = new char[arr.length + 2];
99100
Arrays.fill(arr2, 'x');
100101
arr2[0] = 'a';

0 commit comments

Comments
 (0)