如何(简单地)从java生成POST http请求来进行文件上传

2023-11-29

我想使用 POST http 事件从 java 应用程序/小程序上传文件。我想避免使用 SE 中未包含的任何库,除非没有其他(可行)选项。
到目前为止,我只提出了非常简单的解决方案。
- 创建字符串(缓冲区)并用兼容的标头填充它(http://www.ietf.org/rfc/rfc1867.txt)
- 打开与服务器 URL.openConnection() 的连接并将该文件的内容写入 OutputStream。
我还需要手动将二进制文件转换为 POST 事件。

我希望有一些更好、更简单的方法来做到这一点?


您需要使用java.net.URL and java.net.URLConnection类。

有一些很好的例子http://java.sun.com/docs/books/tutorial/networking/urls/readingWriting.html

这是一些快速但令人讨厌的代码:

public void post(String url) throws Exception {
    URL u = new URL(url);
    URLConnection c = u.openConnection();

    c.setDoOutput(true);
    if (c instanceof HttpURLConnection) {
        ((HttpURLConnection)c).setRequestMethod("POST");
    }

    OutputStreamWriter out = new OutputStreamWriter(
        c.getOutputStream());

    // output your data here

    out.close();

    BufferedReader in = new BufferedReader(
                new InputStreamReader(
                    c.getInputStream()));

    String s = null;
    while ((s = in.readLine()) != null) {
        System.out.println(s);
    }
    in.close();
}

请注意,在将 POST 数据写入连接之前,您可能仍需要对其进行 urlencode()。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何(简单地)从java生成POST http请求来进行文件上传 的相关文章

随机推荐