使用ApacheCommons/Android HTTP库将curl-X POST-F转换为java

使用ApacheCommons/Android HTTP库将curl-X POST-F转换为java,java,android,curl,Java,Android,Curl,有人能帮我使用ApacheCommons库通过HTTP POST上传文件吗。与curl等价的调用是 curl-X POST-F dataname=@filename https\u url 我试过的是 响应总是400,请求错误 这不适用于https吗? 我是否需要手动将数据添加到文件以使一切正常工作? Di我需要设置一个内容类型?在C中,我可以使用AddFiles,一切正常……我建议您使用okhttp而不是Apache http。如果你愿意,我可以为你举个例子 HTTPClient c =

有人能帮我使用ApacheCommons库通过HTTP POST上传文件吗。与curl等价的调用是

curl-X POST-F dataname=@filename https\u url

我试过的是



响应总是400,请求错误

这不适用于https吗? 我是否需要手动将数据添加到文件以使一切正常工作?
Di我需要设置一个内容类型?

在C中,我可以使用AddFiles,一切正常……我建议您使用okhttp而不是Apache http。如果你愿意,我可以为你举个例子
HTTPClient c = new DefaultHTTPClient();
HttpPost p = new HttpPost(https_url);
// initialize header fields as required
p.setHeader("key","value"); 
// ...

// Attempt 1, did not work
p.setEntity(new ByteArrayEntity(dataArray)); 

// Attempt 2, did not work
Parts[] parts = new Part[1];
File f = File.createTempFile("filname","extension");
FileOutputStream fos = new FileOutputStream(f);
fos.write(dataArray);
parts[0] = new FilePart("dataname", f);
MultiPartEntity e = new MultiPartEntity(parts);
p.setEntity(e);  // also did not work

HttpResponse response. client.execute(p, new BasicHttpContext());