Skip to content

Commit 77cb45c

Browse files
committed
Post with OkHttp
1 parent a9d8aa4 commit 77cb45c

File tree

3 files changed

+158
-1
lines changed

3 files changed

+158
-1
lines changed

okhttp-examples/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ Click **Finish** button to finish the importing
1313
Source code are described:
1414
###[Download a File with OkHttp](http://howtoprogram.xyz/2016/11/17/download-a-file-with-okhttp/)
1515
###[Set Timeout with OkHttp](http://howtoprogram.xyz/2016/11/23/set-timeout-okhttp/)
16-
###[How to Cache Response with OkHttp](http://howtoprogram.xyz/2017/01/07/how-to-cache-response-with-okhttp/)
16+
###[How to Cache Response with OkHttp](http://howtoprogram.xyz/2017/01/07/how-to-cache-response-with-okhttp/)
17+
###[How to Post with OkHttp](howtoprogram.xyz/2017/01/14/how-to-post-with-okhttp/)
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
package com.howtoprogram.okhttp.posting;
2+
3+
import static junit.framework.Assert.assertTrue;
4+
5+
import java.io.BufferedReader;
6+
import java.io.File;
7+
import java.io.FileReader;
8+
import java.io.IOException;
9+
10+
import org.junit.Ignore;
11+
import org.junit.Test;
12+
13+
import okhttp3.FormBody;
14+
import okhttp3.MediaType;
15+
import okhttp3.MultipartBody;
16+
import okhttp3.OkHttpClient;
17+
import okhttp3.Request;
18+
import okhttp3.RequestBody;
19+
import okhttp3.Response;
20+
import okio.BufferedSink;
21+
22+
public class OkHttpPostTest {
23+
24+
@Test
25+
public void testPostingWithString() throws IOException {
26+
27+
OkHttpClient client = new OkHttpClient.Builder().build();
28+
MediaType textPlainMT = MediaType.parse("text/plain; charset=utf-8");
29+
String st = "Hello OkHttp";
30+
31+
Request request = new Request.Builder().url("http://httpbin.org/post")
32+
.post(RequestBody.create(textPlainMT, st)).build();
33+
34+
Response response = client.newCall(request).execute();
35+
36+
assertTrue(response.isSuccessful());
37+
response.close();
38+
39+
}
40+
41+
private static final MediaType MEDIA_TYPE_PLAINTEXT = MediaType
42+
.parse("text/plain; charset=utf-8");
43+
private final OkHttpClient client = new OkHttpClient();
44+
45+
@Test
46+
public void testPostMultipart()
47+
throws IOException {
48+
49+
File file = new File("src/test/resources/Lorem Ipsum.txt");
50+
RequestBody requestBody = new MultipartBody.Builder()
51+
.setType(MultipartBody.FORM)
52+
53+
.addFormDataPart("file", "LoremIpsum.txt",
54+
RequestBody.create(MEDIA_TYPE_PLAINTEXT, file))
55+
.addFormDataPart("description", "Just Lorem Ipsum")
56+
.build();
57+
58+
Request request = new Request.Builder()
59+
.url("http://httpbin.org/post")
60+
.post(requestBody).build();
61+
62+
Response response = client.newCall(request).execute();
63+
if (!response.isSuccessful()) {
64+
throw new IOException("Unexpected code " + response);
65+
}
66+
67+
}
68+
69+
@Test
70+
public void testPostForm() throws Exception {
71+
72+
RequestBody formBody = new FormBody.Builder()
73+
.add("email", "user@howtoprogram.xyz")
74+
.add("firstname", "John").add("lastname", "Henry").build();
75+
76+
Request request = new Request.Builder().url("http://httpbin.org/post")
77+
.post(formBody)
78+
.build();
79+
80+
Response response = client.newCall(request).execute();
81+
82+
assertTrue(response.isSuccessful());
83+
}
84+
85+
@Test
86+
public void testPostByteArray() throws Exception {
87+
88+
String st = "posting a byte array with OkHttp";
89+
90+
Request request = new Request.Builder()
91+
.url("http://httpbin.org/post")
92+
.post(RequestBody.create(MEDIA_TYPE_PLAINTEXT, st.getBytes("UTF8")))
93+
.build();
94+
95+
Response response = client.newCall(request).execute();
96+
97+
assertTrue(response.isSuccessful());
98+
}
99+
100+
@Test
101+
public void testPostStream() throws Exception {
102+
103+
RequestBody requestBody = new RequestBody() {
104+
@Override
105+
public MediaType contentType() {
106+
return MEDIA_TYPE_PLAINTEXT;
107+
}
108+
109+
@Override
110+
public void writeTo(BufferedSink sink) throws IOException {
111+
112+
File file = new File("src/test/resources/Lorem Ipsum.txt");
113+
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
114+
String line;
115+
while ((line = br.readLine()) != null) {
116+
sink.writeUtf8(line);
117+
}
118+
}
119+
}
120+
121+
};
122+
123+
Request request = new Request.Builder()
124+
.url("http://httpbin.org/post")
125+
.post(requestBody)
126+
.build();
127+
128+
Response response = client.newCall(request).execute();
129+
130+
assertTrue(response.isSuccessful());
131+
}
132+
133+
@Test
134+
public void testPostFile() throws Exception {
135+
File file = new File("src/test/resources/Lorem Ipsum.txt");
136+
137+
Request request = new Request.Builder()
138+
.url("http://httpbin.org/post")
139+
.post(RequestBody.create(MEDIA_TYPE_PLAINTEXT, file))
140+
.build();
141+
142+
Response response = client.newCall(request).execute();
143+
144+
assertTrue(response.isSuccessful());
145+
}
146+
147+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum at condimentum quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc eu faucibus dui, ut fringilla enim. Vestibulum nec leo mauris. Pellentesque a augue orci. Integer nibh lectus, varius a iaculis non, pharetra vel ipsum. Nullam ornare lectus non ex dictum, tempus vulputate ligula gravida. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed congue nunc sit amet magna malesuada, non congue dolor tincidunt. Fusce a interdum nisi. Nam porttitor non est sed consequat. Integer in nisi porta mauris efficitur rhoncus. Duis ac tortor vitae tortor mollis cursus ut in massa. In commodo, augue efficitur tempor feugiat, justo lorem blandit diam, eget rhoncus dolor augue non turpis.
2+
3+
Curabitur sagittis risus vitae laoreet bibendum. Sed sagittis ultrices posuere. Phasellus sed neque non diam tempus ultricies. Praesent imperdiet feugiat porttitor. Mauris leo est, elementum nec purus nec, posuere malesuada nisi. Nunc porttitor porttitor purus quis feugiat. Praesent sodales placerat nunc ac elementum. In porttitor lectus a sapien consectetur malesuada vitae quis metus. Nulla facilisi.
4+
5+
Nullam sem erat, aliquet sit amet sem ac, condimentum malesuada lacus. Quisque iaculis placerat augue eu efficitur. Aliquam placerat ultricies dignissim. Maecenas fermentum ullamcorper tempor. In hac habitasse platea dictumst. Etiam interdum augue at metus sollicitudin egestas. Phasellus non ante ut lacus aliquam viverra at ut nisl. Ut interdum elementum neque non scelerisque. Duis bibendum dignissim leo, ac facilisis elit convallis auctor. Vivamus accumsan venenatis lacus, elementum luctus ligula pellentesque at. Vestibulum magna justo, sodales ut placerat id, laoreet tincidunt ante. Cras ut purus quam. Vestibulum nulla magna, congue at est vel, tempor tristique orci. Quisque elementum, ex sit amet elementum rutrum, quam purus pretium metus, commodo sodales tortor mauris sit amet ipsum.
6+
7+
Nulla et egestas lorem. Aenean congue neque quis orci pharetra, maximus blandit ipsum posuere. Quisque efficitur pellentesque risus, at commodo est tempor nec. Maecenas aliquet magna ac arcu mattis, sed ullamcorper enim imperdiet. Praesent laoreet et est nec venenatis. Pellentesque sit amet odio massa. Sed semper fringilla lobortis.
8+
9+
Pellentesque rutrum libero nisl, ac ornare orci placerat in. In hac habitasse platea dictumst. Donec congue rutrum nunc at viverra. Pellentesque ut faucibus nisl. Aenean quis urna sed nunc efficitur hendrerit. Etiam risus lorem, rutrum sed sem ac, mollis varius metus. Praesent commodo nunc eros, nec malesuada dui aliquam ac. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eu fermentum metus. Sed suscipit vel felis quis venenatis. Praesent non dapibus nisi. Phasellus luctus ultrices blandit. Maecenas ac eros faucibus, vestibulum mauris sit amet, eleifend nunc. Integer blandit orci orci, id viverra tellus finibus vel. Maecenas faucibus luctus ipsum non facilisis.

0 commit comments

Comments
 (0)