BAEL-1576 Guide to unirest (#3779)
This commit is contained in:
parent
d0b42d10f2
commit
ade15ea80a
@ -627,6 +627,11 @@
|
|||||||
<groupId>org.milyn</groupId>
|
<groupId>org.milyn</groupId>
|
||||||
<artifactId>milyn-smooks-all</artifactId>
|
<artifactId>milyn-smooks-all</artifactId>
|
||||||
<version>${smooks.version}</version>
|
<version>${smooks.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mashape.unirest</groupId>
|
||||||
|
<artifactId>unirest-java</artifactId>
|
||||||
|
<version>${unirest.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<repositories>
|
<repositories>
|
||||||
@ -814,6 +819,7 @@
|
|||||||
<tomcat.version>8.5.24</tomcat.version>
|
<tomcat.version>8.5.24</tomcat.version>
|
||||||
<async.http.client.version>2.2.0</async.http.client.version>
|
<async.http.client.version>2.2.0</async.http.client.version>
|
||||||
<infinispan.version>9.1.5.Final</infinispan.version>
|
<infinispan.version>9.1.5.Final</infinispan.version>
|
||||||
|
<unirest.version>1.4.9</unirest.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
39
libraries/src/test/java/com/baeldung/unirest/Article.java
Normal file
39
libraries/src/test/java/com/baeldung/unirest/Article.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package com.baeldung.unirest;
|
||||||
|
|
||||||
|
public class Article {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
private String title;
|
||||||
|
private String author;
|
||||||
|
|
||||||
|
public Article(String id, String title, String author) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.title = title;
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthor() {
|
||||||
|
return author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuthor(String author) {
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
}
|
172
libraries/src/test/java/com/baeldung/unirest/HttpClientTest.java
Normal file
172
libraries/src/test/java/com/baeldung/unirest/HttpClientTest.java
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
package com.baeldung.unirest;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.baeldung.unirest.Article;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.mashape.unirest.http.HttpResponse;
|
||||||
|
import com.mashape.unirest.http.JsonNode;
|
||||||
|
import com.mashape.unirest.http.ObjectMapper;
|
||||||
|
import com.mashape.unirest.http.Unirest;
|
||||||
|
import com.mashape.unirest.http.async.Callback;
|
||||||
|
import com.mashape.unirest.http.exceptions.UnirestException;
|
||||||
|
|
||||||
|
public class HttpClientTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void setup() {
|
||||||
|
// Unirest.setProxy(new HttpHost("localhost", 8080));
|
||||||
|
Unirest.setTimeouts(20000, 15000);
|
||||||
|
Unirest.setDefaultHeader("X-app-name", "baeldung-unirest");
|
||||||
|
Unirest.setDefaultHeader("X-request-id", "100004f00ab5");
|
||||||
|
Unirest.setConcurrency(20, 5);
|
||||||
|
Unirest.setObjectMapper(new ObjectMapper() {
|
||||||
|
com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
|
||||||
|
|
||||||
|
public String writeValue(Object value) {
|
||||||
|
try {
|
||||||
|
return mapper.writeValueAsString(value);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> T readValue(String value, Class<T> valueType) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
return mapper.readValue(value, valueType);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void tearDown() throws IOException {
|
||||||
|
Unirest.clearDefaultHeaders();
|
||||||
|
Unirest.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldReturnStatusOkay() throws UnirestException {
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.get("http://www.mocky.io/v2/5a9ce37b3100004f00ab5154")
|
||||||
|
.header("accept", "application/json")
|
||||||
|
.queryString("apiKey", "123")
|
||||||
|
.asJson();
|
||||||
|
assertNotNull(jsonResponse.getBody());
|
||||||
|
assertEquals(200, jsonResponse.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldReturnStatusAccepted() throws UnirestException {
|
||||||
|
|
||||||
|
Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
headers.put("accept", "application/json");
|
||||||
|
headers.put("Authorization", "Bearer 5a9ce37b3100004f00ab5154");
|
||||||
|
|
||||||
|
Map<String, Object> fields = new HashMap<String, Object>();
|
||||||
|
fields.put("name", "Sam Baeldung");
|
||||||
|
fields.put("id", "PSP123");
|
||||||
|
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.put("http://www.mocky.io/v2/5a9ce7853100002a00ab515e")
|
||||||
|
.headers(headers)
|
||||||
|
.fields(fields)
|
||||||
|
.asJson();
|
||||||
|
assertNotNull(jsonResponse.getBody());
|
||||||
|
assertEquals(202, jsonResponse.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenRequestBodyWhenCreatedThenCorrect() throws UnirestException {
|
||||||
|
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.post("http://www.mocky.io/v2/5a9ce7663100006800ab515d")
|
||||||
|
.body("{\"name\":\"Sam Baeldung\", \"city\":\"viena\"}")
|
||||||
|
.asJson();
|
||||||
|
assertEquals(201, jsonResponse.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenAysncRequestShouldReturnOk() throws InterruptedException, ExecutionException {
|
||||||
|
Future<HttpResponse<JsonNode>> future = Unirest.post("http://www.mocky.io/v2/5a9ce37b3100004f00ab5154?mocky-delay=10000ms")
|
||||||
|
.header("accept", "application/json")
|
||||||
|
.asJsonAsync(new Callback<JsonNode>() {
|
||||||
|
|
||||||
|
public void failed(UnirestException e) {
|
||||||
|
// Do something if the request failed
|
||||||
|
}
|
||||||
|
|
||||||
|
public void completed(HttpResponse<JsonNode> response) {
|
||||||
|
// Do something if the request is successful
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cancelled() {
|
||||||
|
// Do something if the request is cancelled
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
assertEquals(200, future.get()
|
||||||
|
.getStatus());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenArticleWhenCreatedThenCorrect() throws UnirestException {
|
||||||
|
Article article = new Article("ID1213", "Guide to Rest", "baeldung");
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.post("http://www.mocky.io/v2/5a9ce7663100006800ab515d")
|
||||||
|
.body(article)
|
||||||
|
.asJson();
|
||||||
|
assertEquals(201, jsonResponse.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
public void givenFileWhenUploadedThenCorrect() throws UnirestException {
|
||||||
|
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.post("http://www.mocky.io/v2/5a9ce7663100006800ab515d")
|
||||||
|
.field("file", new File("/path/to/file"))
|
||||||
|
.asJson();
|
||||||
|
assertEquals(201, jsonResponse.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
public void givenByteStreamWhenUploadedThenCorrect() throws IOException, UnirestException {
|
||||||
|
try (InputStream inputStream = new FileInputStream(new File("/path/to/file/artcile.txt"))) {
|
||||||
|
byte[] bytes = new byte[inputStream.available()];
|
||||||
|
inputStream.read(bytes);
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.post("http://www.mocky.io/v2/5a9ce7663100006800ab515d")
|
||||||
|
.field("file", bytes, "article.txt")
|
||||||
|
.asJson();
|
||||||
|
assertEquals(201, jsonResponse.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
public void givenInputStreamWhenUploadedThenCorrect() throws UnirestException, IOException {
|
||||||
|
try (InputStream inputStream = new FileInputStream(new File("/path/to/file/artcile.txt"))) {
|
||||||
|
|
||||||
|
HttpResponse<JsonNode> jsonResponse = Unirest.post("http://www.mocky.io/v2/5a9ce7663100006800ab515d")
|
||||||
|
.field("file", inputStream, ContentType.APPLICATION_OCTET_STREAM, "article.txt")
|
||||||
|
.asJson();
|
||||||
|
assertEquals(201, jsonResponse.getStatus());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user