2012-08-28 188 views
0

我想從我的android手機上傳文件到服務器的URL。但服務器需要先登錄。我怎麼做到這一點上傳文件到這個服務器的URL也登錄URL。 例如: 上傳網址: http://api.someapi.net/v1/medium/14 參數要求:文件和標題上傳文件到服務器在android

登錄網址: http://api.someapi.net/v1/user/login 參數要求:電子郵件地址和密碼

+0

如果你想確保在第一用戶登錄,您可以登錄生成並返回一個令牌。然後有上傳要求(令牌,文件,標題) – mario

回答

0

使用下面的代碼檢查登錄憑證。如果響應正常,請使用以下相同的代碼將文件發送到網址,並使用不同的參數。否則做你想做的事。

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(); 
    } 

希望它可以幫助

0

你需要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); 

田田!

+0

感謝您的答覆。我正在嘗試..... –

+0

感謝它的工作 –