从android应用程序调用cURL

时间:2015-10-28 04:30:25

标签: java android http curl https

我正在尝试调用CURL,因为我需要一种快速而肮脏的方式来忽略自签名的SSL证书,而且我无法在java中找到任何适当的快速和脏的方法。

这是我目前正在使用的功能:

public String httpRequest(String httpsUrl) {
    String ret;

    // all of the java based HTTP requests are **** so here is cURL to the rescue
    try {
        // Process curl = Runtime.getRuntime().exec("/system/bin/curl --insecure '" + httpsUrl + "'");
        String cmdString[] = {"/system/bin/curl", "--insecure", httpsUrl};

        Process curl = Runtime.getRuntime().exec(cmdString);
        BufferedReader in = new BufferedReader(new InputStreamReader(curl.getInputStream()));

        curl.waitFor();

        String line = ret = in.readLine();

        while ( line != null ) {
            ret += line + "\n";
            line = in.readLine();
        }
    } catch ( Exception e ) {
        e.printStackTrace();
    }

    return ret;
}

我遇到的确切问题是它没有做任何事情。 它没有提出它不会抛出任何异常的请求,也没有输出。如果我只是运行" / system / bin / curl --help"它工作正常并返回帮助页面,如果我从Android Studio中的日志中复制日志并从终端手动运行它工作正常,但由于某种原因它只是默默地失败。

我试图请求的页面只是从nodejs脚本生成的JSON,并通过lighttpd Web服务器反向代理,这只是一个私有项目,我非常想让这个应用程序不受影响尽可能快,因为它只是项目的一小部分,也是我不熟悉的语言中的唯一一点。

0 个答案:

没有答案