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