我想将文件从我的 android 手机上传到服务器 URL。但服务器需要先登录。我怎样才能将文件上传到此服务器 URL 以及登录 URL。例如:上传网址: http ://api.someapi.net/v1/medium/14 所需参数:文件和标题
登录网址: http ://api.someapi.net/v1/user/login 所需参数:邮箱和密码
您的项目需要 Apache 的 Mime4J jar 文件(此处 - http://james.apache.org/download.cgi#Apache_Mime4J)
并做:
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("file", new InputStreamBody(file, "UPLOAD.jpg"));
request.setEntity(entity);
多田!
使用以下代码检查登录凭据。如果响应正常,则使用下面的相同代码和不同的参数将文件发送到 url。否则随心所欲。
URL siteUrl;
try {
siteUrl = new URL("yoururl");
HttpURLConnection conn = (HttpURLConnection) siteUrl
.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
String content1 = "";
//Here param is the Map<String,String> which holds the value of email and password
Set getkey = param.keySet();
Iterator keyIter = getkey.iterator();
String content = "";
for (int i = 0; keyIter.hasNext(); i++) {
Object key = keyIter.next();
if (i != 0) {
content += "&";
}
content += key + "=" + param.get(key);
}
//Check by printing here
System.out.println(content);
out.writeBytes(content.trim());
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line = "";
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
}
希望能帮助到你