得到网络文件
但是在得到的文件中如出现中文则出现乱码问题:
网络传输肯定是用byte[]的,不可能直接把String对象给传过来,所以server想把某个字符串传给client之前,需要将他转成 byte[] , 这中间就用了server指定的一种编码,client在收到这个 byte[]之后,就必须要采用和server相同的编码,把byte[]重新转换为String。这就是InputStreamReader需要指定一个编码的原因。
InputStreamReader作用就是在通过inputStream读到byte[]的同时,将byte[]用指定的编码,转换为 char[],也就是实际上的String.
StringBuffer sb=new StringBuffer();
BufferedReader br=null;
String line=null;
try
{
url=new URL(“http://baidu.com/peon.txt");
URLConnection urlConn=(URLConnection)url.openConnection();
br=new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"GB2312"));
//解决中文乱码问题
while((line=br.readLine())!=null)
{
sb.append(line);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
br.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
但是问题又出现了,如果下载的文件名里有中文如测试.txt 那么在下载的时候就会找不到此文件URL url=new URL("http://10.0.2.2:8090/mp3/测试.txt"); 无效
更改:
String name=URLEncoder.encode("测试", "UTF-8");
URL url=new URL("http://10.0.2.2:8090/mp3/"+name+".txt");
在试验中也是无效的。即使改utf-8为8859_1或者gb2312
这时我发现如果在tomcat服务器中更别tomcat的编码 在用相应的解码就可以访问到该文件了。如
<Connector port="8090" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
但是我很纳闷 它默认的编码格式是什么呢 ?难道不是以上三种么?
分享到:
相关推荐
"Android 通过 URL 获取网络资源" Android 通过 URL 获取网络资源是指 Android 应用程序通过 URL 访问网络资源的过程。这个过程需要在 AndroidManifest.xml 文件中加入访问因特网服务的权限,否则将出现 permission...
以下是一个详细的知识点介绍,关于如何在Java中通过URL获取网络位置上的文件流。 1. **URL对象**:首先,我们需要创建一个`java.net.URL`对象,它表示统一资源定位符,即我们所说的网址。例如: ```java URL url = ...
"JAVA 通过 URL 获取网页内容" JAVA 通过 URL 获取网页内容是 Java 编程语言中的一种常见操作。通过使用 URL 类和 URLConnection 类,Java 程序可以连接到远程服务器,获取指定 URL 的内容。本文将详细介绍如何使用...
本文将详细介绍如何通过URL获取网络图片并将其显示在ImageView上。我们将使用一个简单的示例来演示这一过程,该示例是从百度官网获取其logo图片。 首先,我们需要引入能够处理网络请求和图片加载的库。Android本身...
在本文中,我们将深入探讨如何使用C#编程语言在Visual Studio 2010环境下获取网络资源,特别是针对“糗事百科”网站的信息。C#作为.NET Framework的主要开发语言,提供了丰富的类库来处理网络请求,这使得我们可以...
### 通过JAVA语言实现使用URL访问网络资源 #### 一、URL概述与基本概念 URL(Uniform Resource Locator),即统一资源定位符,是用于标识互联网上特定资源的地址。通过给定的URL,浏览器能够找到相应的文件或其他...
通过创建OkHttpClient实例,配置请求,然后使用enqueue()方法发起请求,可以轻松地在后台线程中获取网络资源。OkHttp还具有缓存机制,能提高重复请求的效率。 3. **使用Volley**:Volley是Google推出的一个网络库,...
本篇文章将深入探讨如何使用`HttpClient`来获取网络资源,以及处理返回的XML数据。 首先,我们需要了解`HttpClient`的基本用法。在Java中,创建一个`HttpClient`实例是获取网络资源的第一步。`HttpClient`提供了...
总的来说,“android获取网络资源demo”涉及的关键技术包括URL的构造、HttpURLConnection的使用、网络权限的声明以及异步处理网络请求。这些知识构成了Android应用与服务器交互的基础,是每个Android开发者都应掌握...
以上就是“Android通过URL访问网络资源工具包”的主要知识点,理解并掌握这些内容对于开发能有效访问网络的Android应用至关重要。在实际项目中,开发者可以根据需求扩展`HttpUtil`,增加更多的网络请求方法,如PUT、...
在这个例子中,我们将探讨如何使用`AsyncTask`来获取网络资源并将其结果显示在`TextView`上。 首先,我们需要创建一个`AsyncTask`的子类,这个子类会继承自`AsyncTask`。在`MainActivity`中定义了一个名为`MyTask`...
URL(Uniform Resource Locator)是统一资源定位器,它是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的...
首先,理解“URL”是网络资源的唯一标识,通过HTTP或HTTPS协议,我们可以向服务器发送请求来获取该资源。HTTP是互联网上应用最为广泛的一种网络协议,它允许客户端(如浏览器)向服务器请求数据。HTTPS则是在HTTP...
实验中的`URLTest`示例展示了如何通过URL获取网络资源的步骤: - 首先,创建一个`URL`对象,传入资源的URL字符串,如`http://www.dgut.edu.cn`。 - 然后,调用`openConnection()`方法建立到该URL的连接。 - 接下来...
`URL`(统一资源定位符)对象表示网络资源的位置,而`URLConnection`则是连接这些资源的桥梁。 2. **创建URL对象**: 首先,你需要创建一个`URL`对象,传入网页的完整URL地址,例如: ```java URL url = new URL...
本实例的标题"实例:获取网络资源(整个项目)"旨在教授如何利用编程技术来实现这些功能。下面将详细介绍相关知识点。 1. **BackgroundWorker**:在.NET框架中,BackgroundWorker组件用于在后台线程执行长时间运行...
### Android如何获得网络资源的大小 在Android应用开发过程中,我们常常需要下载各种类型...通过上述方法,开发者可以在Android应用程序中有效地获取网络资源的大小,这对于优化下载策略、提高用户体验具有重要意义。
总结来说,通过PowerBuilder的NetConnection和NetRequest对象,我们可以构建HTTP请求,从局域网或互联网下载图片和其他文件,从而扩展PB应用程序的功能,使其能够处理网络资源。这是一个实用且重要的技术,尤其在...
Android 使用 URL 读取网络资源的方法是一种常见的网络资源获取方式,通过 URL 类和 HttpURLConnection,可以非常方便地读取远程资源。但是在读取网络资源时,需要注意网络权限和线程安全的问题。
通过Java.net包中的URL类,开发者可以创建并操作URL对象,从而轻松实现对网络资源的访问和操作。 1. **URL对象的创建** - `URL`类提供了多种构造方法来创建URL对象,以适应不同的URL格式。例如,可以通过字符串...