阅读量:0
在 Java 中可以使用 Apache HttpClient 或者 HttpURLConnection 来实现文件上传到指定服务器,以下是两种方法的示例:
使用 Apache HttpClient:
import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; 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.MultipartEntityBuilder; import org.apache.http.impl.client.HttpClients; import java.io.File; import java.io.IOException; public class FileUploader { public static void main(String[] args) { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com/upload"); File file = new File("path/to/file.txt"); HttpEntity entity = MultipartEntityBuilder.create() .addBinaryBody("file", file, ContentType.DEFAULT_BINARY, file.getName()) .build(); httpPost.setEntity(entity); try { HttpResponse response = httpClient.execute(httpPost); System.out.println(response.getStatusLine()); } catch (IOException e) { e.printStackTrace(); } } }
使用 HttpURLConnection:
import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class FileUploader { public static void main(String[] args) { String url = "http://example.com/upload"; String fileName = "path/to/file.txt"; try { URL serverUrl = new URL(url); HttpURLConnection connection = (HttpURLConnection) serverUrl.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "multipart/form-data"); File file = new File(fileName); FileInputStream fileInputStream = new FileInputStream(file); DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = fileInputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } fileInputStream.close(); outputStream.flush(); outputStream.close(); int responseCode = connection.getResponseCode(); System.out.println("Server response code: " + responseCode); } catch (IOException e) { e.printStackTrace(); } } }
以上示例代码演示了如何使用 Apache HttpClient 和 HttpURLConnection 来上传文件到指定服务器。在实际应用中,需要根据服务器的接口要求和认证方式进行适当的配置。