【问题标题】:Send text file over http in android在android中通过http发送文本文件
【发布时间】:2013-12-10 04:12:34
【问题描述】:

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

      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?提前谢谢。

【问题讨论】:

标签: java android http servlets


【解决方案1】:

这里有一些代码,但我强烈建议通过 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多