在Android中,如何将二进制文件上传到服务器似乎很混乱,因为有些库已经过时,而且缺乏信息,现在应该采用哪种方法。 任何人都可以指出如何将二进制文件或任何文件上传到Android中的服务器吗?
我不想使用任何依赖项,除非它们确实是必需的。
答案 0 :(得分:0)
由于缺乏信息,这可能是什么样的服务器,我发现this
OkHttpClient client = new OkHttpClient();
OutputStream out = null;
try {
URL url = new URL("http://www.example.com");
HttpURLConnection connection = client.open(url);
for (Map.Entry<String, String> entry : multipart.getHeaders().entrySet()) {
connection.addRequestProperty(entry.getKey(), entry.getValue());
}
connection.setRequestMethod("POST");
// Write the request.
out = connection.getOutputStream();
multipart.writeBodyTo(out);
out.close();
// Read the response.
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new IOException("Unexpected HTTP response: "
+ connection.getResponseCode() + " " + connection.getResponseMessage());
}
}
finally {
try { if (out != null) out.close(); }
catch (Exception e) {}
}
我认为您提到的已弃用/过时的库是ApacheHttpClient,因此我建议使用OkHttp
(我相信使用的是HttpUrlConnection
)。
要将OkHttp添加为依赖项,您可以编辑build.gradle
,如:
dependencies {
//some other dependencies
compile 'com.squareup.okhttp:okhttp:2.7.2'
}
可在此处找到可用的版本:mvnrepository(无需手动下载,只需像上面一样添加它们,gradle会自行下载)