如何从Android上的本地网络中的PC通过HttpGet获取文件

时间:2013-11-21 15:02:45

标签: android http url

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

新的HttpGet(url + filepath);

该文件位于同一目录中,路径为C://Users/abc/def/test.txt

但如果我把它写到文件路径我无法获取文件。我该怎么写文件路径?

提前致谢

1 个答案:

答案 0 :(得分: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");