我想用java http应用程序/ applet从java应用程序上传文件。除非没有其他(可行)选项,否则我想避免使用任何未包含在SE中的库。
到目前为止,我只想出了非常简单的解决方案。
- 创建字符串(缓冲区)并填充兼容头(http://www.ietf.org/rfc/rfc1867.txt)
- 打开与服务器URL.openConnection()的连接并将此文件的内容写入OutputStream。
我还需要手动将二进制文件转换为POST事件。
我希望有更好,更简单的方法来做到这一点?如何(简单地)从java生成POST http请求来做文件上传
3
A
回答
3
您需要了解在较新版本的HTTP中使用的分块编码。 Apache HttpClient库是一个很好的参考实现。
8
您需要使用java.net.URL
和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();
}
请注意,您可能仍然需要将其写入连接之前来urlencode()的POST数据。
相关问题
- 1. 从控制器生成http post请求
- 2. Java通过HTTP POST请求上传文件
- 3. 如何生成一个HTTP POST请求,并使用Java
- 4. GAE处理简单的http post请求(java)
- 5. JAVA发送POST http请求
- 6. JSON来的NSDictionary从HTTP POST请求
- 7. 生成HTTP请求
- 8. 如何在Http POST请求中发送图像文件? (JAVA)
- 9. Java中的HTTP POST(带文件上传)
- 10. 使用python创建一个http POST请求来上传文件urllib/urllib2
- 11. 如何从java中的wsdl文件生成SOAP请求xml
- 12. 如何使用Telnet生成HTTP POST请求?
- 13. 的Java:发送POST HTTP请求,将文件上传到主人MediaFire REST API
- 14. Android上的HTTP POST请求
- 15. 如何从HTTP POST请求中删除Accept-char头文件
- 16. HTTP POST请求
- 17. 在java中异步地上传文件的HTTP请求最简单的方法是什么?
- 18. 我如何添加名称值数据到android HTTP文件上传POST请求
- 19. Perl HTTP ::带文件上传的请求忽略头文件
- 20. 更改HTTP POST请求HTTPS POST请求:
- 21. 从HTML表单启动http post请求并在java中接收到请求
- 22. 如何从Java的HTTP POST请求中检索JSON?
- 23. 从python3请求生成http错误
- 24. 从Django中的http请求生成PDF
- 25. HTTP POST请求AngularJS
- 26. Angular2 HTTP POST请求
- 27. ASMX HTTP POST请求
- 28. 从HTTP请求正文解析POST请求
- 29. multipart http请求上传图像
- 30. 来自j2me的POST HTTP请求
请解释你为什么不想使用外部库。显然它是*可能*没有任何外部库,但你基本上会复制(说)HttpClient(http://hc.apache.org/httpcomponents-client/index.html) – 2008-11-24 14:46:00