Java 等效旋度——数据二进制@filename-H“;内容类型:文本/csv“;在爪哇

Java 等效旋度——数据二进制@filename-H“;内容类型:文本/csv“;在爪哇,java,http,curl,Java,Http,Curl,我使用的是Apache http客户端,使用cURL,命令如下: curl -i -X POST --data-binary @data.csv -H "Content-Type:text/csv" "http://localhost:8080/" Java(Apache Http客户端)中的等价物是什么?我尝试了以下方法: HttpPost postRequest = new HttpPost("..."); MultipartEntityBuilder builder = Multipar

我使用的是Apache http客户端,使用cURL,命令如下:

curl -i -X POST --data-binary @data.csv -H "Content-Type:text/csv" "http://localhost:8080/"
Java(Apache Http客户端)中的等价物是什么?我尝试了以下方法:

HttpPost postRequest = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
File file = new File("data.csv");
builder.addBinaryBody("upfile", file, ContentType.create("text/csv"), "data.csv");
HttpEntity entity = builder.build();
postRequest.setEntity(entity);
client.execute(postRequest);

curl
直接将文件内容作为主体(实体)发送,而不是以多部分的形式发送。试一试

    HttpPost post = new HttpPost(url);
    post.setEntity(new FileEntity(new File(filename),ContentType.create("text/csv")));
    ... client.execute(post) ...

PS:
curl-d/--data[-*]
已经在使用POST,运行Java代码时不需要
-X

,有什么问题吗?有什么错误或意外的结果吗?@shaochuancs我没有收到任何错误,只是看起来请求没有真正执行(我希望在请求后将一些数据插入数据库)。您检查了服务器日志了吗?收到请求了吗?收到请求后,csv头似乎没有正确解析,它是“empno、ename、job、mgr、hiredate、sal、comm、deptno”,在java中它被更改为“-otalfeocmr8mid1h4siwwqg6f2i93rrf”