如何使用构建器类在JAVA HTTP POST中使用Servlet和主机名

时间:2017-09-21 19:11:05

标签: java http builder

我正在尝试使用构建器类在Java中构建一个http POST,并且无法弄清楚如何将servlet与主机名结合起来。试图找到一些这方面的例子,但不能。

private static String HOSTNAME = "servlet.nuancemobility.net";
private static String SERVLET = "/NMDPAsrCmdServlet/dictation";

我正在使用的构建器类:

    URIBuilder builder = new URIBuilder();
    builder.setScheme("https");
    builder.setHost(HOSTNAME);
    builder.addParameter(SERVLET, SERVLET);
    builder.setPort(443);
    builder.build();
    return builder;

URl应如下所示:https://servlet.nuancemobility.net:443/NMDPAsrCmdServlet/dictation

但是

builder.addParameter(SERVLET, SERVLET);

它看起来像这样:

https://servlet.nuancemobility.net:443?%2FNMDPAsrCmdServlet%2Fdictation=%2FNMDPAsrCmdServlet%2Fdictation

1 个答案:

答案 0 :(得分:0)

URL的/ NMDPAsrCmdServlet / dictation部分是servlet资源的路径,而不是参数。尝试使用:

URIBuilder builder = new URIBuilder();
    builder.setScheme("https");
    builder.setHost(HOSTNAME);
    builder.setPath(SERVLET);   
    builder.setPort(443);
    builder.build();
    return builder;

参数列表用于添加到查询字符串的参数(名称/值对)。