Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
2
20240528-BJava
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
20240528-BJava
Commits
7bb05898
Commit
7bb05898
authored
Jun 25, 2024
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Gotowe przykłady RestKlient - jeszcze bez modelu
parent
09a2a7a9
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
261 additions
and
0 deletions
+261
-0
Klient01_URL.java
PC28-RestKlient/src/main/java/rest_klient/Klient01_URL.java
+25
-0
Klient02_URL_JSON.java
...stKlient/src/main/java/rest_klient/Klient02_URL_JSON.java
+33
-0
Klient03_HttpClient.java
...Klient/src/main/java/rest_klient/Klient03_HttpClient.java
+36
-0
Klient04_HttpClient_String.java
...src/main/java/rest_klient/Klient04_HttpClient_String.java
+29
-0
Klient05_HttpClient_Accept.java
...src/main/java/rest_klient/Klient05_HttpClient_Accept.java
+31
-0
Klient06_HttpClient_JSON.java
...t/src/main/java/rest_klient/Klient06_HttpClient_JSON.java
+49
-0
Klient07_HttpClient_JSON_Lista.java
...main/java/rest_klient/Klient07_HttpClient_JSON_Lista.java
+53
-0
Ustawienia.java
PC28-RestKlient/src/main/java/rest_klient/Ustawienia.java
+5
-0
No files found.
PC28-RestKlient/src/main/java/rest_klient/Klient01_URL.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URL
;
public
class
Klient01_URL
{
public
static
void
main
(
String
[]
args
)
{
// Najprostszy sposób w Javie, aby pobrać dane z adresu URL, to użyć klasy URL.
try
{
URL
url
=
new
URL
(
"http://localhost:8080/PC35-RestSerwer/products.json"
);
System
.
out
.
println
(
"Odczytuję dane..."
);
try
(
InputStream
input
=
url
.
openStream
())
{
// teraz z inputa możemy czytać ciąg bajtów
// ja przerzucę bajty czytane z sieci bezpośrednio do System.out
// (w przypadku obcego serwisu może być to niebezpieczne)
input
.
transferTo
(
System
.
out
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Klient02_URL_JSON.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URL
;
import
jakarta.json.Json
;
import
jakarta.json.JsonArray
;
import
jakarta.json.JsonReader
;
import
jakarta.json.JsonValue
;
public
class
Klient02_URL_JSON
{
public
static
void
main
(
String
[]
args
)
{
try
{
URL
url
=
new
URL
(
Ustawienia
.
ADRES_USLUGI
+
"/products.json"
);
try
(
InputStream
inputStream
=
url
.
openStream
();
JsonReader
reader
=
Json
.
createReader
(
inputStream
))
{
JsonArray
array
=
reader
.
readArray
();
// System.out.println(array);
for
(
JsonValue
jsonValue
:
array
)
{
//System.out.println(jsonValue);
System
.
out
.
println
(
jsonValue
.
asJsonObject
().
getString
(
"productName"
));
System
.
out
.
println
(
" opis: "
+
jsonValue
.
asJsonObject
().
getString
(
"description"
,
""
));
System
.
out
.
println
(
" cena: "
+
jsonValue
.
asJsonObject
().
getJsonNumber
(
"price"
).
bigDecimalValue
());
}
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Klient03_HttpClient.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.net.http.HttpClient
;
import
java.net.http.HttpRequest
;
import
java.net.http.HttpResponse
;
import
java.net.http.HttpResponse.BodyHandlers
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
public
class
Klient03_HttpClient
{
/* W Java 11 pojawiło się rozwiązanie "HttpClient", które umożliwia komunikację HTTP z dużą kontrolą nad szczegółami.
* Wysyłając zapytanie, od razu trzeba podać odpowiedni "BodyHandler",
* który pozwoli nam odczytać treść odpowiedzi we właściwy dla nas sposób.
*
* W tej wersji wynik jest zapisywany do pliku.
*/
public
static
void
main
(
String
[]
args
)
{
HttpClient
httpClient
=
HttpClient
.
newHttpClient
();
try
{
URI
uri
=
new
URI
(
Ustawienia
.
ADRES_USLUGI
+
"/products.json"
);
HttpRequest
request
=
HttpRequest
.
newBuilder
(
uri
).
build
();
HttpResponse
<
Path
>
response
=
httpClient
.
send
(
request
,
BodyHandlers
.
ofFile
(
Paths
.
get
(
"wynik03.json"
)));
System
.
out
.
println
(
"response "
+
response
);
System
.
out
.
println
(
"status: "
+
response
.
statusCode
());
System
.
out
.
println
(
"Content-Type: "
+
response
.
headers
().
firstValue
(
"Content-Type"
).
orElse
(
"BRAK"
));
System
.
out
.
println
(
"OK, zapisany plik: "
+
response
.
body
());
}
catch
(
URISyntaxException
|
IOException
|
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Klient04_HttpClient_String.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.net.http.HttpClient
;
import
java.net.http.HttpRequest
;
import
java.net.http.HttpResponse
;
import
java.net.http.HttpResponse.BodyHandlers
;
public
class
Klient04_HttpClient_String
{
public
static
void
main
(
String
[]
args
)
{
HttpClient
httpClient
=
HttpClient
.
newHttpClient
();
try
{
URI
uri
=
new
URI
(
Ustawienia
.
ADRES_USLUGI
+
"/products.json"
);
HttpRequest
request
=
HttpRequest
.
newBuilder
(
uri
).
build
();
// Body z odpowiedzi pobierzemy jako obiekt String z całą treścią
HttpResponse
<
String
>
response
=
httpClient
.
send
(
request
,
BodyHandlers
.
ofString
());
System
.
out
.
println
(
"response "
+
response
);
System
.
out
.
println
(
"status: "
+
response
.
statusCode
());
System
.
out
.
println
(
"Content-Type: "
+
response
.
headers
().
firstValue
(
"Content-Type"
).
orElse
(
"BRAK"
));
System
.
out
.
println
(
"Treść odpowiedzi:\n"
+
response
.
body
());
// tutaj
}
catch
(
URISyntaxException
|
IOException
|
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Klient05_HttpClient_Accept.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.net.http.HttpClient
;
import
java.net.http.HttpRequest
;
import
java.net.http.HttpResponse
;
import
java.net.http.HttpResponse.BodyHandlers
;
public
class
Klient05_HttpClient_Accept
{
public
static
void
main
(
String
[]
args
)
{
HttpClient
httpClient
=
HttpClient
.
newHttpClient
();
try
{
URI
uri
=
new
URI
(
Ustawienia
.
ADRES_USLUGI
+
"/products"
);
// W tej wersji do zapytania dodajemy nagłówek Accept
HttpRequest
request
=
HttpRequest
.
newBuilder
(
uri
)
.
header
(
"Accept"
,
"text/plain"
)
.
build
();
HttpResponse
<
String
>
response
=
httpClient
.
send
(
request
,
BodyHandlers
.
ofString
());
System
.
out
.
println
(
"response "
+
response
);
System
.
out
.
println
(
"status: "
+
response
.
statusCode
());
System
.
out
.
println
(
"Content-Type: "
+
response
.
headers
().
firstValue
(
"Content-Type"
).
orElse
(
"BRAK"
));
System
.
out
.
println
(
"Treść odpowiedzi:\n"
+
response
.
body
());
}
catch
(
URISyntaxException
|
IOException
|
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Klient06_HttpClient_JSON.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.math.BigDecimal
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.net.http.HttpClient
;
import
java.net.http.HttpRequest
;
import
java.net.http.HttpResponse
;
import
java.net.http.HttpResponse.BodyHandlers
;
import
jakarta.json.Json
;
import
jakarta.json.JsonObject
;
import
jakarta.json.JsonReader
;
public
class
Klient06_HttpClient_JSON
{
/* W tej wersji używamy technologii Jakarta JSON P.
*
* Widzimy drzewo danych jsonowych i jego elementytakie jak JsonObject, JsonArray, ...
* Mamy dostęp do poszczególnych pól.
*/
public
static
void
main
(
String
[]
args
)
{
HttpClient
httpClient
=
HttpClient
.
newHttpClient
();
try
{
URI
uri
=
new
URI
(
Ustawienia
.
ADRES_USLUGI
+
"/products/1"
);
HttpRequest
request
=
HttpRequest
.
newBuilder
(
uri
)
.
header
(
"Accept"
,
"application/json"
)
.
build
();
HttpResponse
<
InputStream
>
response
=
httpClient
.
send
(
request
,
BodyHandlers
.
ofInputStream
());
System
.
out
.
println
(
"response "
+
response
);
System
.
out
.
println
(
"status: "
+
response
.
statusCode
());
System
.
out
.
println
(
"Content-Type: "
+
response
.
headers
().
firstValue
(
"Content-Type"
).
orElse
(
"BRAK"
));
JsonReader
reader
=
Json
.
createReader
(
response
.
body
());
JsonObject
product
=
reader
.
readObject
();
System
.
out
.
println
(
"Pobrany obiekt jsonowy: "
+
product
);
String
nazwa
=
product
.
getString
(
"productName"
);
String
opis
=
product
.
getString
(
"description"
,
"BRAK OPISU"
);
BigDecimal
cena
=
product
.
getJsonNumber
(
"price"
).
bigDecimalValue
();
System
.
out
.
println
(
nazwa
+
" za cenę "
+
cena
+
" , opis: "
+
opis
);
reader
.
close
();
}
catch
(
URISyntaxException
|
IOException
|
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Klient07_HttpClient_JSON_Lista.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.net.http.HttpClient
;
import
java.net.http.HttpRequest
;
import
java.net.http.HttpResponse
;
import
java.net.http.HttpResponse.BodyHandlers
;
import
jakarta.json.Json
;
import
jakarta.json.JsonArray
;
import
jakarta.json.JsonObject
;
import
jakarta.json.JsonReader
;
import
jakarta.json.JsonValue
;
public
class
Klient07_HttpClient_JSON_Lista
{
public
static
void
main
(
String
[]
args
)
{
try
{
JsonArray
array
=
pobierzJsona
(
Ustawienia
.
ADRES_USLUGI
+
"/products.json"
);
for
(
JsonValue
jsonValue
:
array
)
{
JsonObject
jsonObject
=
jsonValue
.
asJsonObject
();
System
.
out
.
println
(
jsonObject
.
getString
(
"productName"
));
if
(
jsonObject
.
containsKey
(
"description"
))
{
System
.
out
.
println
(
" opis: "
+
jsonObject
.
getString
(
"description"
,
""
));
}
System
.
out
.
println
(
" cena: "
+
jsonObject
.
getJsonNumber
(
"price"
).
bigDecimalValue
());
}
}
catch
(
IOException
|
InterruptedException
|
URISyntaxException
e
)
{
e
.
printStackTrace
();
}
}
private
static
JsonArray
pobierzJsona
(
String
adres
)
throws
IOException
,
InterruptedException
,
URISyntaxException
{
HttpClient
httpClient
=
HttpClient
.
newHttpClient
();
URI
uri
=
new
URI
(
adres
);
HttpRequest
request
=
HttpRequest
.
newBuilder
(
uri
).
build
();
HttpResponse
<
InputStream
>
response
=
httpClient
.
send
(
request
,
BodyHandlers
.
ofInputStream
());
System
.
out
.
println
(
"response "
+
response
);
System
.
out
.
println
(
"status: "
+
response
.
statusCode
());
System
.
out
.
println
(
"Content-Type: "
+
response
.
headers
().
firstValue
(
"Content-Type"
).
orElse
(
"BRAK"
));
return
wczytajJsona
(
response
.
body
());
}
private
static
JsonArray
wczytajJsona
(
InputStream
input
)
{
try
(
JsonReader
reader
=
Json
.
createReader
(
input
))
{
return
reader
.
readArray
();
}
}
}
PC28-RestKlient/src/main/java/rest_klient/Ustawienia.java
0 → 100644
View file @
7bb05898
package
rest_klient
;
public
class
Ustawienia
{
public
static
final
String
ADRES_USLUGI
=
"http://localhost:8080/PC27-RestSerwer"
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment