Merge pull request #8352 from Maiklins/BAEL-11412-post-with-okhttp
BAEL-11412 post with okhttp
This commit is contained in:
commit
e893e2648f
|
@ -1,88 +1,122 @@
|
||||||
package com.baeldung.okhttp;
|
package com.baeldung.okhttp.post;
|
||||||
|
|
||||||
import static com.baeldung.client.Consts.APPLICATION_PORT;
|
import static com.baeldung.client.Consts.APPLICATION_PORT;
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import okhttp3.Call;
|
import okhttp3.Call;
|
||||||
import okhttp3.Credentials;
|
import okhttp3.Credentials;
|
||||||
import okhttp3.FormBody;
|
import okhttp3.FormBody;
|
||||||
import okhttp3.MediaType;
|
import okhttp3.MediaType;
|
||||||
import okhttp3.MultipartBody;
|
import okhttp3.MultipartBody;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.RequestBody;
|
import okhttp3.RequestBody;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute <code>spring-rest</code> module before running this live test
|
* Execute <code>spring-rest</code> module before running this live test
|
||||||
*/
|
*/
|
||||||
public class OkHttpPostingLiveTest {
|
public class OkHttpPostingLiveTest {
|
||||||
|
|
||||||
private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
|
private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
|
||||||
private static final String URL_SECURED_BY_BASIC_AUTHENTICATION = "http://browserspy.dk/password-ok.php";
|
private static final String URL_SECURED_BY_BASIC_AUTHENTICATION = "http://browserspy.dk/password-ok.php";
|
||||||
|
|
||||||
OkHttpClient client;
|
OkHttpClient client;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void init() {
|
public void init() {
|
||||||
|
|
||||||
client = new OkHttpClient();
|
client = new OkHttpClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenSendPostRequest_thenCorrect() throws IOException {
|
public void whenSendPostRequest_thenCorrect() throws IOException {
|
||||||
final RequestBody formBody = new FormBody.Builder().add("username", "test").add("password", "test").build();
|
final RequestBody formBody = new FormBody.Builder()
|
||||||
|
.add("username", "test")
|
||||||
final Request request = new Request.Builder().url(BASE_URL + "/users").post(formBody).build();
|
.add("password", "test")
|
||||||
|
.build();
|
||||||
final Call call = client.newCall(request);
|
|
||||||
final Response response = call.execute();
|
final Request request = new Request.Builder()
|
||||||
|
.url(BASE_URL + "/users")
|
||||||
assertThat(response.code(), equalTo(200));
|
.post(formBody)
|
||||||
}
|
.build();
|
||||||
|
|
||||||
@Test
|
final Call call = client.newCall(request);
|
||||||
public void whenSendPostRequestWithAuthorization_thenCorrect() throws IOException {
|
final Response response = call.execute();
|
||||||
final String postBody = "test post";
|
|
||||||
|
assertThat(response.code(), equalTo(200));
|
||||||
final Request request = new Request.Builder().url(URL_SECURED_BY_BASIC_AUTHENTICATION).addHeader("Authorization", Credentials.basic("test", "test")).post(RequestBody.create(MediaType.parse("text/x-markdown; charset=utf-8"), "test post")).build();
|
}
|
||||||
|
|
||||||
final Call call = client.newCall(request);
|
@Test
|
||||||
final Response response = call.execute();
|
public void whenSendPostRequestWithAuthorization_thenCorrect() throws IOException {
|
||||||
|
final String postBody = "test post";
|
||||||
assertThat(response.code(), equalTo(200));
|
|
||||||
}
|
final Request request = new Request.Builder()
|
||||||
|
.url(URL_SECURED_BY_BASIC_AUTHENTICATION)
|
||||||
@Test
|
.addHeader("Authorization", Credentials.basic("test", "test"))
|
||||||
public void whenPostJson_thenCorrect() throws IOException {
|
.post(RequestBody.create(MediaType.parse("text/x-markdown"), "test post"))
|
||||||
final String json = "{\"id\":1,\"name\":\"John\"}";
|
.build();
|
||||||
|
|
||||||
final RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), "{\"id\":1,\"name\":\"John\"}");
|
final Call call = client.newCall(request);
|
||||||
final Request request = new Request.Builder().url(BASE_URL + "/users/detail").post(body).build();
|
final Response response = call.execute();
|
||||||
|
|
||||||
final Call call = client.newCall(request);
|
assertThat(response.code(), equalTo(200));
|
||||||
final Response response = call.execute();
|
}
|
||||||
|
|
||||||
assertThat(response.code(), equalTo(200));
|
@Test
|
||||||
}
|
public void whenPostJson_thenCorrect() throws IOException {
|
||||||
|
final String json = "{\"id\":1,\"name\":\"John\"}";
|
||||||
@Test
|
|
||||||
public void whenSendMultipartRequest_thenCorrect() throws IOException {
|
final RequestBody body = RequestBody.create(MediaType.parse("application/json"), "{\"id\":1,\"name\":\"John\"}");
|
||||||
final RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("username", "test").addFormDataPart("password", "test")
|
final Request request = new Request.Builder().url(BASE_URL + "/users/detail").post(body).build();
|
||||||
.addFormDataPart("file", "file.txt", RequestBody.create(MediaType.parse("application/octet-stream"), new File("src/test/resources/test.txt"))).build();
|
|
||||||
|
final Call call = client.newCall(request);
|
||||||
final Request request = new Request.Builder().url(BASE_URL + "/users/multipart").post(requestBody).build();
|
final Response response = call.execute();
|
||||||
|
|
||||||
final Call call = client.newCall(request);
|
assertThat(response.code(), equalTo(200));
|
||||||
final Response response = call.execute();
|
}
|
||||||
|
|
||||||
assertThat(response.code(), equalTo(200));
|
@Test
|
||||||
}
|
public void whenPostJsonWithoutCharset_thenCharsetIsUtf8() throws IOException {
|
||||||
}
|
final String json = "{\"id\":1,\"name\":\"John\"}";
|
||||||
|
|
||||||
|
final RequestBody body = RequestBody.create(
|
||||||
|
MediaType.parse("application/json"), json);
|
||||||
|
|
||||||
|
String charset = body.contentType().charset().displayName();
|
||||||
|
|
||||||
|
assertThat(charset, equalTo("UTF-8"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenPostJsonWithUtf16Charset_thenCharsetIsUtf16() throws IOException {
|
||||||
|
final String json = "{\"id\":1,\"name\":\"John\"}";
|
||||||
|
|
||||||
|
final RequestBody body = RequestBody.create(
|
||||||
|
MediaType.parse("application/json; charset=utf-16"), json);
|
||||||
|
|
||||||
|
String charset = body.contentType().charset().displayName();
|
||||||
|
|
||||||
|
assertThat(charset, equalTo("UTF-16"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenSendMultipartRequest_thenCorrect() throws IOException {
|
||||||
|
final RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("username", "test").addFormDataPart("password", "test")
|
||||||
|
.addFormDataPart("file", "file.txt", RequestBody.create(MediaType.parse("application/octet-stream"), new File("src/test/resources/test.txt"))).build();
|
||||||
|
|
||||||
|
final Request request = new Request.Builder().url(BASE_URL + "/users/multipart").post(requestBody).build();
|
||||||
|
|
||||||
|
final Call call = client.newCall(request);
|
||||||
|
final Response response = call.execute();
|
||||||
|
|
||||||
|
assertThat(response.code(), equalTo(200));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue