java post请求上传文件
时间: 2023-11-24 18:53:26 浏览: 38
以下是Java中使用POST请求上传文件的示例代码:
```java
import java.io.File;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
public class FileUploader {
public static void main(String[] args) {
String url = "http://example.com/upload";
String filePath = "/path/to/file";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(url);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
File file = new File(filePath);
FileBody fileBody = new FileBody(file, ContentType.DEFAULT_BINARY);
builder.addPart("file", fileBody);
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
try {
HttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.toString(responseEntity, "UTF-8");
System.out.println(responseString);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用了Apache HttpClient库来发送POST请求。我们首先创建一个HttpClient实例,然后创建一个HttpPost实例,并将要上传的文件添加到MultipartEntityBuilder中。最后,我们将MultipartEntityBuilder构建为一个HttpEntity,并将其设置为HttpPost的实体。最后,我们执行HttpPost请求并获取响应。