java - 要发布到 servlet 的 Perl 代码 - 转换为 Java?

标签 java perl servlets

我在 Perl 中有以下代码,它发布到我的 HTTP Servlet,调用带有一些 XML 数据的 API。

my $my_hash = {
'env.adapterName' => "DefaultAdapter",
'env.systemName'  => "DefaultSystem",
'env.userId' => "admin",
'env.progId' => "PerlHttpTest",
InteropApiName => $apiName,
InteropApiData  => $xmlData
};

my $res = $ua->request(POST  'http://hostname/interop/InteropHttpServlet', $my_hash);

我想用 Java 来做,但我很挣扎。有人可以指出我正确的方向吗?我想像上面那样将数据发布到我的 servlet 并取回响应(它将是 XML)。

最佳答案

标准 Java SE API 为您提供 java.net.URLConnection触发和处理 HTTP 请求。

String query = "env.adapterName=DefaultAdapter"
    + "&env.systemName=DefaultSystem"
    + "&env.userId=admin"
    + "&env.progId=PerlHttpTest";
    + "&" + URLEncoder.encode(interopApiName, "UTF-8") + "=" + URLEncoder.encode(apiName, "UTF-8")
    + "&" + URLEncoder.encode(interopApiData, "UTF-8") + "=" + URLEncoder.encode(xmlData, "UTF-8");

URLConnection connection = new URL("http://hostname/interop/InteropHttpServlet").openConnection();
connection.setDoOutput(true); // Triggers POST.
connection.getOutputStream().write(query.getBytes("UTF-8"));

InputStream response = connection.getInputStream();
// ...

有第 3 方 API 使这一切变得更容易,例如 Apache HttpComponents Client .

另见:

关于java - 要发布到 servlet 的 Perl 代码 - 转换为 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243759/

相关文章:

java - 在 View 中不更新 JSF 支持托管 Bean 时遇到问题

perl - Cairo::SolidPattern 不是 GooCanvas2::CairoPattern 类型

perl - 如何从在 Perl 中返回文件句柄的方法中读取数据?

tomcat - 如何防止 spring-security 将 ;jsessionid=XXX 附加到登录重定向?

java - 是否可以在 Saxon 中缓存 XML 文档以避免重新解析和重新索引?

java - 当 float 为0.0作为除数时(在java中)

linux - SSH 使用 Perl 脚本在远程站点创建目录

java - 收到 GAE 响应时如何处理 JsonSyntaxException

java - 如何使用 Java Servlet 和 JSP 以及其他字段从同一页面上传两个文件?

java - HL7 Hapi 获取非标准段,段名称出现在标准段中