【问题标题】:How to get file via HttpGet from pc in local network on android如何通过 HttpGet 从 android 本地网络中的 pc 获取文件
【发布时间】:2013-11-21 15:02:45
【问题描述】:

我在我的电脑上运行了 c# 程序来监听 http 请求,我尝试制作一个应用程序,它通过 HttpGet 从我的电脑获取文件。

new HttpGet(url + 文件路径);

文件在同一目录下,路径为C://Users/abc/def/test.txt

但如果我将它写入文件路径,我将无法获取该文件。我应该写什么到文件路径?

提前致谢

【问题讨论】:

    标签: android http url


    【解决方案1】:

    您需要创建一个 AsyncTask 来执行您的请求,因为从 Android Honeycomb 开始,您无法在主线程上添加网络请求。

    这是一个例子:

    private class HttpGetter extends AsyncTask<URL, Void, Void> {
    
                    @Override
                    protected Void doInBackground(URL... urls) {
                            // TODO Auto-generated method stub
                            StringBuilder builder = new StringBuilder();
                            HttpClient client = new DefaultHttpClient();
                            HttpGet httpGet = new HttpGet(urls[0]);
    
                            try {
                                    HttpResponse response = client.execute(httpGet);
                                    StatusLine statusLine = response.getStatusLine();
                                    int statusCode = statusLine.getStatusCode();
                                    if (statusCode == 200) {
                                            HttpEntity entity = response.getEntity();
                                            InputStream content = entity.getContent();
                                            BufferedReader reader = new BufferedReader(
                                                            new InputStreamReader(content));
                                            String line;
                                            while ((line = reader.readLine()) != null) {
                                                    builder.append(line);
                                            }
                                            Log.v("Getter", "Your data: " + builder.toString()); //response data
                                    } else {
                                            Log.e("Getter", "Failed to download file");
                                    }
                            } catch (ClientProtocolException e) {
                                    e.printStackTrace();
                            } catch (IOException e) {
                                    e.printStackTrace();
                            }
    
                            return null;
                    }
        }
    
    HttpGetter get = new HttpGetter();
    get.execute("http://192.168.1.2/song.mp3");
    

    【讨论】:

    • 我正在这样做我已经创建了一个 AsyncTask 但我想知道 song.mp3 文件在同一目录中的哪里?我试过但它没有得到具有相同目录的文件并以这种方式编写
    • 你必须创建一个File并将其存储在getExternalStorage()/folder
    • 我知道我可以处理它。我知道我电脑上的文件路径,但是我如何将该文件路径写入 android 程序以获取该文件
    猜你喜欢
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2018-02-06
    • 2018-09-24
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多