Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7f3a902

Browse files
committed
fix url encoding in POST payload, it wasn't needed (thanks tohttps://github.com/max904-github)
1 parentfdef16c commit7f3a902

File tree

6 files changed

+162
-11
lines changed

6 files changed

+162
-11
lines changed

‎changelog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[SNAPSHOT]
22
* Add Polar API (https://www.polar.com/) (thanks to https://github.com/vidi42)
33
* make Response accept resources to autoclose and autoclose it (thanks to https://github.com/drei01)
4+
* fix url encoding in POST payload, it wasn't needed (thanks to https://github.com/max904-github)
45

56
[6.9.0]
67
* Add Xero API (https://www.xero.com/) (thanks to https://github.com/SidneyAllen)

‎scribejava-core/src/main/java/com/github/scribejava/core/model/OAuthRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ public byte[] getByteArrayPayload() {
360360
if (byteArrayPayload !=null) {
361361
returnbyteArrayPayload;
362362
}
363-
finalStringbody =bodyParams.asFormUrlEncodedString();
363+
finalStringbody =bodyParams.asString();
364364
try {
365365
returnbody.getBytes(getCharset());
366366
}catch (UnsupportedEncodingExceptionuee) {

‎scribejava-core/src/main/java/com/github/scribejava/core/model/Parameter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public String asUrlEncodedPair() {
1616
returnOAuthEncoder.encode(key).concat("=").concat(OAuthEncoder.encode(value));
1717
}
1818

19+
publicStringasPair() {
20+
returnkey +'=' +value;
21+
}
22+
1923
@Override
2024
publicbooleanequals(Objectother) {
2125
if (other ==null) {

‎scribejava-core/src/main/java/com/github/scribejava/core/model/ParameterList.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,18 @@ public String asFormUrlEncodedString() {
6565
returnbuilder.substring(1);
6666
}
6767

68+
publicStringasString() {
69+
if (params.isEmpty()) {
70+
returnEMPTY_STRING;
71+
}
72+
73+
finalStringBuilderbuilder =newStringBuilder();
74+
for (Parameterp :params) {
75+
builder.append(PARAM_SEPARATOR).append(p.asPair());
76+
}
77+
returnbuilder.substring(1);
78+
}
79+
6880
publicvoidaddAll(ParameterListother) {
6981
params.addAll(other.getParams());
7082
}

‎scribejava-core/src/test/java/com/github/scribejava/core/AbstractClientTest.java

Lines changed: 143 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,37 +78,172 @@ public void shouldSendGetRequest() throws Exception {
7878
}
7979

8080
@Test
81-
publicvoidshouldSendPostRequest()throwsException {
81+
publicvoidshouldSendPostRequestWithEmptyBody()throwsException {
82+
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
83+
finalStringexpectedRequestBody ="";
84+
85+
finalMockWebServerserver =newMockWebServer();
86+
server.enqueue(newMockResponse().setBody(expectedResponseBody));
87+
server.start();
88+
89+
finalHttpUrlbaseUrl =server.url("/testUrl");
90+
91+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
92+
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
93+
assertEquals(expectedResponseBody,response.getBody());
94+
}
95+
96+
finalRecordedRequestrecordedRequest =server.takeRequest();
97+
assertEquals("POST",recordedRequest.getMethod());
98+
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
99+
100+
server.shutdown();
101+
}
102+
103+
@Test
104+
publicvoidshouldSendPostRequestWithStringBody()throwsException {
82105
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
83106
finalStringexpectedRequestBody ="request body";
84107

85108
finalMockWebServerserver =newMockWebServer();
86109
server.enqueue(newMockResponse().setBody(expectedResponseBody));
110+
server.start();
111+
112+
finalHttpUrlbaseUrl =server.url("/testUrl");
113+
114+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
115+
request.setPayload(expectedRequestBody);
116+
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
117+
assertEquals(expectedResponseBody,response.getBody());
118+
}
119+
120+
finalRecordedRequestrecordedRequest =server.takeRequest();
121+
assertEquals("POST",recordedRequest.getMethod());
122+
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
123+
124+
server.shutdown();
125+
}
126+
127+
@Test
128+
publicvoidshouldSendPostRequestWithStringBodyWithSpecialChars()throwsException {
129+
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
130+
finalStringexpectedRequestBody ="~/!@#$%^&*()_+//\r\n%2F&";
131+
132+
finalMockWebServerserver =newMockWebServer();
87133
server.enqueue(newMockResponse().setBody(expectedResponseBody));
88134
server.start();
89135

90136
finalHttpUrlbaseUrl =server.url("/testUrl");
91137

92-
// request with body
93-
OAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
138+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
94139
request.setPayload(expectedRequestBody);
95140
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
96141
assertEquals(expectedResponseBody,response.getBody());
97142
}
98143

99-
RecordedRequestrecordedRequest =server.takeRequest();
144+
finalRecordedRequestrecordedRequest =server.takeRequest();
145+
assertEquals("POST",recordedRequest.getMethod());
146+
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
147+
148+
server.shutdown();
149+
}
150+
151+
@Test
152+
publicvoidshouldSendPostRequestWithByteBodyBody()throwsException {
153+
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
154+
finalStringexpectedRequestBody ="request body";
155+
156+
finalMockWebServerserver =newMockWebServer();
157+
server.enqueue(newMockResponse().setBody(expectedResponseBody));
158+
server.start();
159+
160+
finalHttpUrlbaseUrl =server.url("/testUrl");
161+
162+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
163+
request.setPayload(expectedRequestBody.getBytes());
164+
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
165+
assertEquals(expectedResponseBody,response.getBody());
166+
}
167+
168+
finalRecordedRequestrecordedRequest =server.takeRequest();
169+
assertEquals("POST",recordedRequest.getMethod());
170+
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
171+
172+
server.shutdown();
173+
}
174+
175+
@Test
176+
publicvoidshouldSendPostRequestWithByteBodyWithSpecialChars()throwsException {
177+
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
178+
finalStringexpectedRequestBody ="~/!@#$%^&*()_+//\r\n%2F&";
179+
180+
finalMockWebServerserver =newMockWebServer();
181+
server.enqueue(newMockResponse().setBody(expectedResponseBody));
182+
server.start();
183+
184+
finalHttpUrlbaseUrl =server.url("/testUrl");
185+
186+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
187+
request.setPayload(expectedRequestBody.getBytes());
188+
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
189+
assertEquals(expectedResponseBody,response.getBody());
190+
}
191+
192+
finalRecordedRequestrecordedRequest =server.takeRequest();
193+
assertEquals("POST",recordedRequest.getMethod());
194+
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
195+
196+
server.shutdown();
197+
}
198+
199+
@Test
200+
publicvoidshouldSendPostRequestWithBodyParamsBody()throwsException {
201+
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
202+
finalStringexpectedRequestBodyParamName ="request body param name";
203+
finalStringexpectedRequestBodyParamValue ="request body param value";
204+
finalStringexpectedRequestBody =expectedRequestBodyParamName +'=' +expectedRequestBodyParamValue;
205+
206+
finalMockWebServerserver =newMockWebServer();
207+
server.enqueue(newMockResponse().setBody(expectedResponseBody));
208+
server.start();
209+
210+
finalHttpUrlbaseUrl =server.url("/testUrl");
211+
212+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
213+
request.addBodyParameter(expectedRequestBodyParamName,expectedRequestBodyParamValue);
214+
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
215+
assertEquals(expectedResponseBody,response.getBody());
216+
}
217+
218+
finalRecordedRequestrecordedRequest =server.takeRequest();
100219
assertEquals("POST",recordedRequest.getMethod());
101220
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
102221

103-
// request with empty body
104-
request =newOAuthRequest(Verb.POST,baseUrl.toString());
222+
server.shutdown();
223+
}
224+
225+
@Test
226+
publicvoidshouldSendPostRequestWithBodyParamsBodyWithSpecialChars()throwsException {
227+
finalStringexpectedResponseBody ="response body for test shouldSendPostRequest";
228+
finalStringexpectedRequestBodyParamName ="~/!@#$%^&*()_+//\r\n%2F&name";
229+
finalStringexpectedRequestBodyParamValue ="~/!@#$%^&*()_+//\r\n%2F&value";
230+
finalStringexpectedRequestBody =expectedRequestBodyParamName +'=' +expectedRequestBodyParamValue;
231+
232+
finalMockWebServerserver =newMockWebServer();
233+
server.enqueue(newMockResponse().setBody(expectedResponseBody));
234+
server.start();
235+
236+
finalHttpUrlbaseUrl =server.url("/testUrl");
237+
238+
finalOAuthRequestrequest =newOAuthRequest(Verb.POST,baseUrl.toString());
239+
request.addBodyParameter(expectedRequestBodyParamName,expectedRequestBodyParamValue);
105240
try (Responseresponse =oAuthService.execute(request,null).get(30,TimeUnit.SECONDS)) {
106241
assertEquals(expectedResponseBody,response.getBody());
107242
}
108243

109-
recordedRequest =server.takeRequest();
244+
finalRecordedRequestrecordedRequest =server.takeRequest();
110245
assertEquals("POST",recordedRequest.getMethod());
111-
assertEquals("",recordedRequest.getBody().readUtf8());
246+
assertEquals(expectedRequestBody,recordedRequest.getBody().readUtf8());
112247

113248
server.shutdown();
114249
}

‎scribejava-core/src/test/java/com/github/scribejava/core/model/RequestTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ public void shouldGetQueryStringParameters() {
2929

3030
@Test
3131
publicvoidshouldSetBodyParamsAndAddContentLength() {
32-
assertEquals("param=value&param%20with%20spaces=value%20with%20spaces",
33-
newString(postRequest.getByteArrayPayload()));
32+
assertEquals("param=value&param with spaces=value with spaces",newString(postRequest.getByteArrayPayload()));
3433
}
3534

3635
@Test

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp