2011-03-01 132 views
5

我想送POST请求(如HTML表格),并获取文件(HTTP标头:“内容处置:附件;文件名=” myfile.pdf“)。你能帮我如何发送POST请求并获取文件响应?

+0

您确定您的意思是Java,而不是Javascript? – Mikhail 2011-03-01 19:47:40

+0

问题太模糊。请描述你的环境。它是基于浏览器的应用程序吗?你对Servlet有问题吗? – rahulmohan 2011-03-01 19:57:01

回答

11

你最好的选择可能是使用第三方库,如HttpClientHTMLUnit

如果你喜欢用标准的API也并不复杂做到这一点。

// Construct data 
String data = URLEncoder.encode("key1", "UTF-8") + "=" + 
           URLEncoder.encode("value1", "UTF-8"); 

data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + 
           URLEncoder.encode("value2", "UTF-8"); 

// Send data 
URL url = new URL("http://hostname:80/cgi"); 
URLConnection conn = url.openConnection(); 
conn.setDoOutput(true); 
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
wr.write(data); 
wr.flush(); 

// Get the response 
BufferedReader rd = new BufferedReader(
     new InputStreamReader(conn.getInputStream())); 

String line; 
while ((line = rd.readLine()) != null) { 
    // Process line... 
} 
wr.close(); 
rd.close(); 
相关问题