【问题标题】:Converting curl command to Java or jQuery.ajax ()将 curl 命令转换为 Java 或 jQuery.ajax ()
【发布时间】:2016-08-04 17:03:27
【问题描述】:

我以前从未使用过curl。我正在尝试运行命令并在 Web 应用程序中解析 XML 结果。

curl -k https://ip.address.example --data-urlencode file.xml

所以我的选择仅限于:

  • 使用带有Runtime.getRuntime.exec 的servlet 执行命令
  • 使用jQuery.ajax()

我试过这个:

$.ajax({
    url : "https://ip.address.example",
    type : 'GET',
    dataType : 'json',
    contentType : 'application/json',
    file: "file.xml",
    success : function(data) {
        console.log(JSON.stringify(data));
    },
    error : function() {
        console.log("Cannot get data");
    }
});

但它似乎不起作用。

第一种方法,我试过了:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            Gson gson = new GsonBuilder().serializeNulls().create();
            Process p = Runtime.getRuntime().exec("curl -k https://ip.address.example --data-urlencode file.xml");
            p.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line , output = "";
            while ((line = reader.readLine()) != null) {
                output += line + "\n";
            }
            System.out.println(output);
            out.printf(gson.toJson(output));

        } catch (Exception e) {
            e.printStackTrace();

        }
    }

但我在out.printf(gson.toJson(output)); 上遇到错误

java.util.UnknownFormatConversionException: Conversion = ')'

有什么建议吗?

【问题讨论】:

  • --data-urlencode 用于将数据 POST 到 Web 服务器。使用 jQuery 无法轻松完成发布文件。对于初学者来说,jQuery.ajax 在其设置中甚至没有“文件”属性。对于 jQuery,您应该查看一些文件上传插件。如果 file.xml 是 servlet 的本地文件,则可以使用 java 方法。如果没有,您仍然有将 file.xml 上传到 servlet 的障碍。
  • 我尝试了第一种方法,但我的代码有问题。

标签: java ajax curl gson


【解决方案1】:

解决办法是: 替换

out.printf(gson.toJson(output));

out.printf(output);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2015-06-13
    • 2015-08-15
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多