如何在android上通过HttpGet从本地网络pc获取文件

如何在android上通过HttpGet从本地网络pc获取文件,android,http,url,Android,Http,Url,我在我的电脑上运行c#程序,监听http请求,我尝试制作一个应用程序,通过HttpGet从我的电脑上获取一个文件 新的HttpGet(url+filepath) 该文件位于同一目录中,路径为C://Users/abc/def/test.txt 但是,如果我将其写入filepath,则无法获取该文件。我应该向文件路径写入什么 提前感谢您需要创建一个AsyncTask来执行请求,因为由于Android Honeycom,您无法在主线程上添加网络请求 以下是一个例子: private class Ht

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

新的HttpGet(url+filepath)

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

但是,如果我将其写入filepath,则无法获取该文件。我应该向文件路径写入什么


提前感谢

您需要创建一个AsyncTask来执行请求,因为由于Android Honeycom,您无法在主线程上添加网络请求

以下是一个例子:

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");
私有类HttpGetter扩展异步任务{
@凌驾
受保护的Void doInBackground(URL…URL){
//TODO自动生成的方法存根
StringBuilder=新的StringBuilder();
HttpClient=new DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(URL[0]);
试一试{
HttpResponse response=client.execute(httpGet);
StatusLine StatusLine=response.getStatusLine();
int statusCode=statusLine.getStatusCode();
如果(状态代码==200){
HttpEntity=response.getEntity();
InputStream内容=entity.getContent();
BufferedReader reader=新的BufferedReader(
新的InputStreamReader(内容));
弦线;
而((line=reader.readLine())!=null){
builder.append(行);
}
Log.v(“Getter”,“您的数据:+builder.toString());//响应数据
}否则{
Log.e(“Getter”,“未能下载文件”);
}
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
}
HttpGetter get=新的HttpGetter();
get.execute(“http://192.168.1.2/song.mp3");

我正在这样做,我已经创建了一个AsyncTask,但我想知道song.mp3文件在哪里?它在同一目录中吗?我试过了,但是它没有得到相同目录的文件,并且以这种方式写入。你必须创建一个
文件
,并将其存储在
getExternalStorage()/文件夹
我知道安卓方面我可以处理它。我知道我电脑上的文件路径,但我如何将该文件路径写入android程序以获取该文件