2013-11-25 114 views
0

目前,我从android应用程序发送一个用户名作为参数到我的servlet。现在我想从android应用程序发送文本文件到我的servlet。有可能吗? 这里的示例代码,我试过用Http发送用户名。通过http发送文本文件android

 try 
     { 
     URL url = new URL("http:/xx.xxx.xxx.x/sample?user=admin"); // File as parameter 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
      InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
      BufferedReader r = new BufferedReader(new InputStreamReader(in)); 
      String x = ""; 
      String total = ""; 
      int i=0; 
      ArrayList<String> content = new ArrayList(); 
      while((x = r.readLine()) != null) 
      { 
         content.add(x); 

      } 
      in.close(); 
      r.close(); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
      Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); 
     } 

上面的代码工作正常,如何通过其存储在我的SD卡作为提前参数到servlet?.thanks文本文件。

+2

雅很可能是我们可以将文件发送到服务器,请参考以下链接HTTP://reecon.wordpress。 com/2010/04/25 /上传文件到http-server-using-post-android-sdk/ – prakash

+0

而不是图像放置你的文本文件 – prakash

回答

0

这里是一些代码,但我强烈建议上传数据通过POST请求而不是GET请求:

private void sendFileThroughHTTP(File file) { 
    try { 
     Uri uri = new Uri.Builder().scheme("http").encodedAuthority("xx.xxx.xxx.x") 
       .path("sample") 
       .appendQueryParameter("user", "admin") 
       .appendQueryParameter("file", fileToString(file)) 
       .build(); 
     HttpGet get = new HttpGet(uri.toString()); 

     HttpClient client = new DefaultHttpClient(); 
     client.execute(get); 
    } catch (ClientProtocolException e) { 
     Log.e("SOME_TAG", Log.getStackTraceString(e)); 
    } catch (IOException e) { 
     Log.e("SOME_TAG", Log.getStackTraceString(e)); 
    } 
} 

private String fileToString(File file) { 
    String resultString = ""; 
    FileReader fileReader = null; 
    if (file != null && file.isFile()) { 
     try { 
      fileReader = new FileReader(file); 
      BufferedReader reader = new BufferedReader(fileReader); 
      StringBuilder stringBuilder = new StringBuilder(); 
      String temp; 
      while ((temp = reader.readLine()) != null) { 
       stringBuilder.append(temp); 
      } 
      resultString = stringBuilder.toString(); 
     } catch (FileNotFoundException e) { 
      Log.e("SOME_TAG", Log.getStackTraceString(e)); 
     } catch (IOException e) { 
      Log.e("SOME_TAG", Log.getStackTraceString(e)); 
     } finally { 
      try { 
       if (fileReader != null) { 
        fileReader.close(); 
       } 
      } catch (IOException e) { 
       Log.e("SOME_TAG", Log.getStackTraceString(e)); 
      } 
     } 
    } 
    return resultString; 
}