java客户端通过http发送POST请求上传文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java客户端通过http发送POST请求上传文件相关的知识,希望对你有一定的参考价值。
java客户端代码:
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.util.*;
public class Upload
public Upload()
String filePath="D:\\DataSocketServer.java";
String fileName="DataSocketServer.java";
try
URL url=new URL("http://localhost:8080//TestServlet3");
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
BufferedOutputStream out=new BufferedOutputStream(connection.getOutputStream());
File file=new File(filePath);
FileInputStream fis=new FileInputStream(file);
byte[] bytes=new byte[1024];
int numReadByte=0;
while((numReadByte=fis.read(bytes,0,1024))>0)
out.write(bytes,0,numReadByte);
out.flush();
fis.close();
catch(Exception e)
e.printStackTrace();
public static void main(String[] args)
new Upload();
Servlet代码:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class TestServlet3 extends HttpServlet
private static final long serialVersionUID=1L;
public void init(ServletConfig config) throws ServletException
super.init(config);
public void destroy()
super.destroy();
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
doPost(request,response);
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
BufferedInputStream in=new BufferedInputStream(request.getInputStream());
FileOutputStream fos=new FileOutputStream(new File("J:\\aaa.java"));
byte[] inputByte = new byte[1024];
int length=0;
while((length=in.read(inputByte,0,inputByte.length))>0)
fos.write(inputByte,0,length);
fos.flush();
fos.close();
为什么java客户端上传不了文件。我试了下载可以,上传不可以。
如果是HTTP的,要按HTTP的协议进行。先了解一下multi-part的post
java发送post请求传送文本和文件
单一或多个普通文本参数我会,单一或多个上传文件的参数我也会,但是混合两种就死活不会了。
例如 jsp :
<form action="<%=request.getContextPath()%>/servlet/SimpleUpload" enctype="multipart/form-data"
method="post">
商户ID:<input type="text" name="gShopID" value="1234"><br>
商户验证码:<input type="text" name="validateString" value="abcdefg"><br>
上传文件:<input type="file" name="multiItemsStock"><br>
<input type="submit" value="开始上传">
</form>
例如这个 表单,我要在java中发送post请求传这3个参数应该如何写呢???
发送post请求到别人的服务器,需要这3个参数。id有,validate有,上传的文件在d盘,上传的路径也有。就是不知道如何发送post请求。求例子(带注解的)!
已经解决了。呵呵。
以上是关于java客户端通过http发送POST请求上传文件的主要内容,如果未能解决你的问题,请参考以下文章