`

struts2 gb2312 HttpURLConnection乱码问题解决

    博客分类:
  • java
阅读更多

struts2中的编码全部是utf-8的,但有一个地方要通过HttpURLConnection获取外部的gb2312的内容后转换成自己的内容,由于内部请求都是utf-8的,所以获取得到的都是乱码(注:如果没有经过struts2直接运行main方法则正常),后来把respone设置为gbk就可以了。

分享下代码:

public String showStockF10()
	{
		//System.out.println(this.getRequest().getCharacterEncoding());//UTF-8
		this.getResponse().setCharacterEncoding("gbk");
		String url = "http://guso.guosen.com.cn/StockInfo/Html/F10/guso_F10_" + this.stockCode + ".htm";
		String html = getHtml(url,"gbk");
		System.out.println(html);
		this.stockHtml = html;
		return SUCCESS;
	}
	
	public static String getHtml(String urlname,String coding)
	{
		String html = "";
		try
		{
			URL url = new URL(urlname);
			HttpURLConnection connect = (HttpURLConnection) url.openConnection();
			connect.setRequestProperty("User-agent","Mozilla/4.0"); 
			connect.connect();
			InputStream is = connect.getInputStream(); 
			StringBuffer content = new StringBuffer();
			
			while ((is.read()) != -1)
			{
				int all = is.available();
				byte[] b = new byte[all];
				is.read(b);
				content.append(new String(b, coding));
			}
			
			is.close();
			url = null;
			html = content.toString();
			
		}
		catch (IOException ex)
		{
			//ex.printStackTrace();
			return "";
		}
		catch (Exception e)
		{
			System.out.println("出现错误" + e.getStackTrace());
		}
		return html;
	}

public static void main(String[] args)
	{
		String url = "http://guso.guosen.com.cn/StockInfo/Html/F10/guso_F10_000002.htm";
		String html = getHtml(url,"gbk");
		System.out.println(html);
	}

 

分享到:
评论

相关推荐

    Struts2+Json+Android简单实现

    2. **客户端**:在Android应用中,使用HttpURLConnection或者第三方库如Volley、OkHttp发起HTTP请求到服务端的Struts2 Action。收到响应后,使用Gson或Jackson库解析JSON数据。 3. **数据处理**:解析后的JSON数据...

    乱码终极解决办法java实现

    对于给定的"解决乱码终极办法"压缩包文件,很可能是包含了一些示例代码或工具,帮助开发者快速解决特定场景下的乱码问题。如果遇到具体问题,可以参考这些资源,结合本文的知识点,来找到最合适的解决方案。

    Android开发HTTP传输数据到Struts2生成Json数据案例

    为了接收JSON数据,需要在Action类的方法上使用`@Action("your-action")`注解,并设置接受的参数类型为`Map, Object>`或自定义的Java对象,Struts2会自动将JSON数据解析到这些参数中。 ```java public class Your...

    java中文乱码解决之道(8)解决URL中文乱码问题Jav

    本文将深入探讨如何在Java中有效地解决URL中文乱码问题。 首先,我们需要理解URL编码的原理。URL编码遵循RFC 3986标准,它规定了在URL中非ASCII字符应被转换为百分号编码形式(%xy),其中xy是该字符的UTF-8编码的...

    HttpURLConnection文件下载\httpURLConnection文件下载

    在给定的代码片段中,展示了如何使用`HttpURLConnection`进行文件下载。 首先,我们看到代码引入了`java.io`、`java.net`和`java.util`这三个包。`java.io`包含了输入/输出流,用于处理数据的读写;`java.net`包含...

    Android+struts2+JSON方式的手机开发

    在Android应用开发中,结合Struts2框架和JSON(JavaScript Object Notation)技术可以实现高效的数据交互。这个项目可能是为了创建一个使用Android客户端通过HTTP请求与服务器进行数据交换的示例。Struts2是一个强大...

    Android网络连接2——HttpURLConnection

    源码中包含了请求建立、数据传输、连接管理等多个层面的细节,深入学习可以帮助我们更好地理解和解决网络问题。 总结,`HttpURLConnection`是Android进行网络通信的重要工具,通过它可以灵活地实现各种HTTP请求。...

    Android HttpURLConnection.getResponseCode()错误解决方法

    导语:个人对网络连接接触的不多,在使用时自己发现一些问题,记录一下。 正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用...

    android客户端上传文件源码,struts2服务端接收源码 .zip

    本压缩包包含的源码示例提供了这样一个解决方案,使用了Android客户端和Struts2服务端技术。接下来,我们将深入探讨这两个关键组件以及它们如何协同工作。 首先,让我们关注Android客户端部分。在Android平台上,...

    android客户端上传文件,struts2服务端接收

    Struts2作为Java Web框架,提供了处理文件上传的能力。本篇将详细讲解如何实现Android客户端上传文件以及Struts2服务端接收的过程。 首先,让我们从Android客户端开始。在Android中,文件上传主要涉及`...

    Httpurlconnection

    HttpURLConnection都提供了解决这些问题的方法,例如通过`setInstanceFollowRedirects(boolean)`控制自动重定向,或者使用`SSLSocketFactory`和`TrustManager`处理安全连接。 总的来说,HttpURLConnection是Java中...

    android客户端上传数据中文乱码3中解决方案

    android客户端上传数据中文乱码3中解决方案 一种HttpPost两种HTTPURLCONNECTION

    android接收json例子struts2Action返回json格式数据

    在Android开发中,与服务器进行数据交互是常见的...而`Struts2_JSON_Demo`可能是一个Struts2的项目,实现了返回JSON数据的Action。通过这两个示例,你可以更直观地学习和理解Android与Struts2之间JSON数据交换的过程。

    HttpURLConnection

    HttpURLConnection的demo,里面有网络请求get post 上传文件,下载文件,介绍HttpURLConnection这个类整体流程是怎样使用的,方便初学者学习

    使用HttpURLConnection下载图片

    要处理可能的异常,如网络问题、文件I/O问题等,确保在try-catch块中进行。 8. **关闭资源**: 下载完成后,记得关闭输入流和输出流,避免资源泄漏。 9. **示例代码**: 这是一个简单的下载图片的示例代码: `...

    通过HttpURLConnection获取SESSIONID

    InputStreamReader reader = new InputStreamReader(in,"gb2312"); BufferedReader read = new BufferedReader(reader); StringBuilder builder = new StringBuilder(); String str = ""; while((str...

    struts2+Mysql搭建的服务端 +android 客户端 post,get请求

    Struts2和MySQL是开发Web应用的常用技术组合,它们为服务端提供了强大的处理能力和数据库存储功能。在Android客户端与服务端的交互中,HTTP协议是连接两者的关键桥梁,允许客户端通过POST和GET请求发送数据并接收...

    android调用struts2源码

    4. **.struts2插件**:为了支持JSON响应,我们需要在Struts2配置中启用`struts2-json-plugin`。这允许Action方法返回一个包含JSON数据的`ValueStack`或`Map`。 **二、Android请求流程** 1. **构建请求参数**:根据...

    AsyncTask结合HttpUrlConnection的例子

    在Android开发中,异步处理是非常重要的一环,特别是在与服务器进行数据交互时,为了保持UI线程的流畅性,避免...在实际开发中,你可能还需要考虑异常处理、连接重试、缓存策略等问题,以提高应用的健壮性和用户体验。

    解决了中文乱码的http的get和post请求demo

    总的来说,解决HTTP请求中的中文乱码问题,核心在于正确地设置编码格式,并在发送请求前对中文数据进行编码。无论是GET还是POST请求,都需要确保客户端和服务器之间对字符编码的一致理解。通过阅读提供的文档和示例...

Global site tag (gtag.js) - Google Analytics