HttpURLConnection发送formdata,文件字节码没有发送成功
时间: 2023-05-16 19:05:28 浏览: 57
这可能是由于以下原因导致的:
1. 没有正确设置Content-Type头部,应该设置为multipart/form-data。
2. 没有正确设置boundary,boundary是用来分隔不同的表单字段和文件的。
3. 没有正确设置Content-Disposition头部,应该设置为form-data,并指定name和filename属性。
4. 没有正确读取文件字节码,应该使用FileInputStream或者ByteArrayInputStream来读取文件字节码。
你可以参考以下代码来发送formdata:
```
URL url = new URL("http://example.com/upload");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes("--" + boundary + "\r\n");
dos.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + fileName + "\"\r\n");
dos.writeBytes("Content-Type: " + mimeType + "\r\n");
dos.writeBytes("\r\n");
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
dos.write(buffer, 0, bytesRead);
}
fis.close();
dos.writeBytes("\r\n--" + boundary + "--\r\n");
dos.flush();
dos.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// 文件上传成功
}
```
注意,这只是一个示例代码,你需要根据实际情况进行修改。