Skip to content

Commit cb7b688

Browse files
authored
Merge pull request #170 from wtetsu/feature/add_javanethttp
Add java.net.http.HttpClient based snippet generator
2 parents c5bc4d8 + 0f558f0 commit cb7b688

19 files changed

+180
-2
lines changed

src/targets/java/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ module.exports = {
1010

1111
okhttp: require('./okhttp'),
1212
unirest: require('./unirest'),
13-
asynchttp: require('./asynchttp')
14-
13+
asynchttp: require('./asynchttp'),
14+
nethttp: require('./nethttp')
1515
}

src/targets/java/nethttp.js

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/**
2+
* @description
3+
* HTTP code snippet generator for Java using java.net.http.
4+
*
5+
* @author
6+
* @wtetsu
7+
*
8+
* for any questions or issues regarding the generated code snippet, please open an issue mentioning the author.
9+
*/
10+
11+
'use strict'
12+
13+
var CodeBuilder = require('../../helpers/code-builder')
14+
15+
module.exports = function (source, options) {
16+
var opts = Object.assign(
17+
{
18+
indent: ' '
19+
},
20+
options
21+
)
22+
23+
var code = new CodeBuilder(opts.indent)
24+
25+
code.push('HttpRequest request = HttpRequest.newBuilder()')
26+
code.push(2, '.uri(URI.create("%s"))', source.fullUrl)
27+
28+
var headers = Object.keys(source.allHeaders)
29+
30+
// construct headers
31+
if (headers.length) {
32+
headers.forEach(function (key) {
33+
code.push(2, '.header("%s", "%s")', key, source.allHeaders[key])
34+
})
35+
}
36+
37+
if (source.postData.text) {
38+
code.push(
39+
2,
40+
'.method("%s", HttpRequest.BodyPublishers.ofString(%s))',
41+
source.method.toUpperCase(),
42+
JSON.stringify(source.postData.text)
43+
)
44+
} else {
45+
code.push(2, '.method("%s", HttpRequest.BodyPublishers.noBody())', source.method.toUpperCase())
46+
}
47+
48+
code.push(2, '.build();')
49+
50+
code.push(
51+
'HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());'
52+
)
53+
code.push('System.out.println(response.body());')
54+
55+
return code.join()
56+
}
57+
58+
module.exports.info = {
59+
key: 'nethttp',
60+
title: 'java.net.http',
61+
link: 'https://openjdk.java.net/groups/net/httpclient/intro.html',
62+
description: 'Java Standardized HTTP Client API'
63+
}

test/fixtures/available-targets.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,12 @@
202202
"title": "AsyncHttp",
203203
"link": "https://github.com/AsyncHttpClient/async-http-client",
204204
"description": "Asynchronous Http and WebSocket Client library for Java"
205+
},
206+
{
207+
"key": "nethttp",
208+
"title": "java.net.http",
209+
"link": "https://openjdk.java.net/groups/net/httpclient/intro.html",
210+
"description": "Java Standardized HTTP Client API"
205211
}
206212
]
207213
},
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("http://mockbin.com/har"))
3+
.header("content-type", "application/x-www-form-urlencoded")
4+
.method("POST", HttpRequest.BodyPublishers.ofString("foo=bar&hello=world"))
5+
.build();
6+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
7+
System.out.println(response.body());
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("http://mockbin.com/har"))
3+
.header("content-type", "application/json")
4+
.method("POST", HttpRequest.BodyPublishers.ofString("{\"number\":1,\"string\":\"f\\\"oo\",\"arr\":[1,2,3],\"nested\":{\"a\":\"b\"},\"arr_mix\":[1,\"a\",{\"arr_mix_nested\":{}}],\"boolean\":false}"))
5+
.build();
6+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
7+
System.out.println(response.body());
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("http://mockbin.com/har"))
3+
.header("cookie", "foo=bar; bar=baz")
4+
.method("POST", HttpRequest.BodyPublishers.noBody())
5+
.build();
6+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
7+
System.out.println(response.body());
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("http://mockbin.com/har"))
3+
.method("PROPFIND", HttpRequest.BodyPublishers.noBody())
4+
.build();
5+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
6+
System.out.println(response.body());
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("http://mockbin.com/har?foo=bar&foo=baz&baz=abc&key=value"))
3+
.header("cookie", "foo=bar; bar=baz")
4+
.header("accept", "application/json")
5+
.header("content-type", "application/x-www-form-urlencoded")
6+
.method("POST", HttpRequest.BodyPublishers.ofString("foo=bar"))
7+
.build();
8+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
9+
System.out.println(response.body());
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("http://mockbin.com/har"))
3+
.header("accept", "application/json")
4+
.header("x-foo", "Bar")
5+
.method("GET", HttpRequest.BodyPublishers.noBody())
6+
.build();
7+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
8+
System.out.println(response.body());
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
HttpRequest request = HttpRequest.newBuilder()
2+
.uri(URI.create("https://mockbin.com/har"))
3+
.method("GET", HttpRequest.BodyPublishers.noBody())
4+
.build();
5+
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
6+
System.out.println(response.body());

0 commit comments

Comments
 (0)