Rhino の HttpClient の使い方 (Post)


http_post.js
#! /usr/bin/java org.mozilla.javascript.tools.shell.Main
// -----------------------------------------------------------------------
/*
    http_post.js


                    Jun/12/2021
*/
// -----------------------------------------------------------------------
importPackage (java.io)
importPackage (java.lang)
importPackage (java.util)
importPackage (java.nio.charset)
importPackage (org.apache.http)
importPackage (org.apache.http.client)
importPackage (org.apache.http.client.methods)
importPackage (org.apache.http.impl.client)
importPackage (org.apache.http.message)
importPackage (org.apache.http.util)
importPackage (org.apache.http.client.entity)

// -----------------------------------------------------------------------
function http_post_proc (url_in,user,password)
{
    const charset = StandardCharsets.UTF_8

    var httpclient = HttpClients.createDefault()

    var request = new HttpPost(url_in)  
    var requestParams = new ArrayList()
    requestParams.add(new BasicNameValuePair("user",user))
    requestParams.add(new BasicNameValuePair("password",password))

    request.setEntity(new UrlEncodedFormEntity(requestParams))

    var response = httpclient.execute(request)

    const status = response.getStatusLine().getStatusCode()

    print("HTTPステータス:" + status)

    if (status == HttpStatus.SC_OK){
        var responseData = EntityUtils.toString(response.getEntity(),charset)
        print(responseData)
        }

    if (response != null)
        {
        response.close()
        }

    if (httpclient != null)
        {
        httpclient.close()
        }
}

// -----------------------------------------------------------------------
System.err.println ("*** 開始 ***")

const url_in = "https://httpbin.org/post"
const user = "jiro"
const password = "123456"

http_post_proc (url_in,user,password)

System.err.println ("*** 終了 ***")

// -----------------------------------------------------------------------

実行コマンド

LIB=/usr/share/java
HTTPCLIENT_JAR=$LIB/httpclient-4.5.13.jar:$LIB/httpcore-4.4.14.jar:$LIB/commons-logging-1.2.jar
JAVA_CLASSPATH="/usr/share/java/js.jar:/usr/share/java/jline.jar"
export CLASSPATH=.:$JAVA_CLASSPATH:$HTTPCLIENT_JAR
#
./http_post.js