当前位置: 首页 > 知识库问答 >
问题:

Java中的MultipartEntityBuilder HttpPost套接字写入错误

公良琛
2023-03-14

我正在尝试在java中使用httpPost请求(通过MultipartEntityBuilder)上传文件。但是我得到了一个软件导致的连接中止:套接字写入错误。

这是我的httpPost正文(在wireShark中)

------WebKitFormBoundaryWphJNFngxYSpEvNO
Content-Disposition: form-data; name="csrf_token"

csrf:sjwzV6dOZaNFwc0jWVrNNcFvhM7uv3BK00vZ0hCgEUzi2cG7r7Arx0Q3UZKlXeaR
------WebKitFormBoundaryWphJNFngxYSpEvNO
Content-Disposition: form-data; name="imagefilename"; filename="myfile.bin"
Content-Type: application/octet-stream

²qz‹ÁOOõMÓâg‘Ç`:----This area is file's binary code------Êëá‡/oåup

代码端为:

            File file = new File(filePath);
            String message = csrf_token;
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            builder.addBinaryBody("imagefilename", file, ContentType.DEFAULT_BINARY, file.getName());
            builder.addTextBody("csrf_token", message, ContentType.DEFAULT_BINARY);
//
            HttpEntity entity = builder.build();
            httpPost.setEntity(entity);
            HttpResponse response = httpClient.execute(httpPost);

和错误:

有什么想法吗?谢谢大家。

共有1个答案

别旻
2023-03-14

我解决了这个问题,这些链接是有用的答案

下面是带有http客户端的fileupload示例

这里还有文件上传,带有httpUrlConnection

 类似资料:
  • 问题内容: 对, 我正在尝试用PHP编写一个wee脚本,该脚本会将游戏内聊天程序包发送到Minecraft。 现在,如果连接成功,那么我将发送2个“数据包”。 带有整数3的单个字节,用于告知Minecraft它应作为Packet3Chat“数据包”处理传入的网络流量: 这似乎可以正常运行**。 所需的第二个“数据包”是字符串的长度,为带符号的short。 这似乎也可以正常工作**。 现在剩下要做的

  • 我转向你,在这件事上我一直把头撞在墙上。 我正在做一个小的socket编程,我可以看到当我把它放出来。println(“…”)while循环之前的代码行(in.readLine())它工作正常,但我需要它位于循环内部。 说清楚一点,我没有看到任何错误。我只是看不到此应用程序的客户端显示文本。它看起来好像在工作,但事实并非如此。此外,我也不控制该应用程序的客户端,它由通过TCP连接到此套接字侦听器应

  • 这几天又有一个挑战砸到了我的头。我正在尝试用Java创建一个FTP服务器,它应该能够与FileZilla FTP客户端通信。代码不是最好的,因为我尝试了很多方法来找出发生了什么。 这里的FileZilla日志从德语翻译 目前的主要问题是建立真正的联系。套接字已连接,我可以向客户端发送至少一条消息,但没有机会获取客户端输入,例如PASV、USER和PASS。 对于错误消息/打印堆栈:

  • 问题内容: 为什么有人会喜欢阻止写而不是非阻止写?我的理解是,仅当您想确保写方法返回后,另一端获得了TCP数据包时,才希望阻止写操作,但是我什至不知道这是可能的。您将必须刷新,而刷新则必须刷新 底层操作系统的写套接字缓冲区 。那么,无阻塞套接字写是否有任何缺点?就性能而言,拥有较大的底层写套接字是否会缓冲一个不好的主意?我的理解是,底层套接字写缓冲区越小,当底层套接字缓冲区已满且isWritabl

  • 问题内容: 给定此堆栈跟踪代码段 引起原因::软件导致连接中止: (本地方法)处的套接字写入错误 我试图回答以下问题: 哪些代码引发此异常?(JVM?/ Tomcat?/我的代码?) 是什么导致引发此异常? 关于#1: 的JVM源不包含此确切消息,但是我认为文本软件导致连接中止:套接字写入错误来自的本机实现: 关于#2 我的猜测是,这是由于客户端在获得完整响应之前(例如,发送了一个请求,但在获得完

  • 我使用HttpClient4.4发送get和post请求。并且我刚刚创建了一个httpclient的simpile包装器以方便使用: 当我使用这个类发送post请求时。奇怪的事情发生了: 第一次,我向服务器发送一个post请求,一分钟后就可以了,我向服务器发送一个同样的请求,也可以了。但几分钟后,我发出了一个同样的请求,有些不对劲: 但是,我仍然向服务器发送一个相同的请求,它又可以了。 每次我按照