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);
}
分享到:
相关推荐
2. **客户端**:在Android应用中,使用HttpURLConnection或者第三方库如Volley、OkHttp发起HTTP请求到服务端的Struts2 Action。收到响应后,使用Gson或Jackson库解析JSON数据。 3. **数据处理**:解析后的JSON数据...
对于给定的"解决乱码终极办法"压缩包文件,很可能是包含了一些示例代码或工具,帮助开发者快速解决特定场景下的乱码问题。如果遇到具体问题,可以参考这些资源,结合本文的知识点,来找到最合适的解决方案。
为了接收JSON数据,需要在Action类的方法上使用`@Action("your-action")`注解,并设置接受的参数类型为`Map, Object>`或自定义的Java对象,Struts2会自动将JSON数据解析到这些参数中。 ```java public class Your...
本文将深入探讨如何在Java中有效地解决URL中文乱码问题。 首先,我们需要理解URL编码的原理。URL编码遵循RFC 3986标准,它规定了在URL中非ASCII字符应被转换为百分号编码形式(%xy),其中xy是该字符的UTF-8编码的...
在给定的代码片段中,展示了如何使用`HttpURLConnection`进行文件下载。 首先,我们看到代码引入了`java.io`、`java.net`和`java.util`这三个包。`java.io`包含了输入/输出流,用于处理数据的读写;`java.net`包含...
在Android应用开发中,结合Struts2框架和JSON(JavaScript Object Notation)技术可以实现高效的数据交互。这个项目可能是为了创建一个使用Android客户端通过HTTP请求与服务器进行数据交换的示例。Struts2是一个强大...
源码中包含了请求建立、数据传输、连接管理等多个层面的细节,深入学习可以帮助我们更好地理解和解决网络问题。 总结,`HttpURLConnection`是Android进行网络通信的重要工具,通过它可以灵活地实现各种HTTP请求。...
导语:个人对网络连接接触的不多,在使用时自己发现一些问题,记录一下。 正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用...
本压缩包包含的源码示例提供了这样一个解决方案,使用了Android客户端和Struts2服务端技术。接下来,我们将深入探讨这两个关键组件以及它们如何协同工作。 首先,让我们关注Android客户端部分。在Android平台上,...
Struts2作为Java Web框架,提供了处理文件上传的能力。本篇将详细讲解如何实现Android客户端上传文件以及Struts2服务端接收的过程。 首先,让我们从Android客户端开始。在Android中,文件上传主要涉及`...
HttpURLConnection都提供了解决这些问题的方法,例如通过`setInstanceFollowRedirects(boolean)`控制自动重定向,或者使用`SSLSocketFactory`和`TrustManager`处理安全连接。 总的来说,HttpURLConnection是Java中...
android客户端上传数据中文乱码3中解决方案 一种HttpPost两种HTTPURLCONNECTION
在Android开发中,与服务器进行数据交互是常见的...而`Struts2_JSON_Demo`可能是一个Struts2的项目,实现了返回JSON数据的Action。通过这两个示例,你可以更直观地学习和理解Android与Struts2之间JSON数据交换的过程。
HttpURLConnection的demo,里面有网络请求get post 上传文件,下载文件,介绍HttpURLConnection这个类整体流程是怎样使用的,方便初学者学习
要处理可能的异常,如网络问题、文件I/O问题等,确保在try-catch块中进行。 8. **关闭资源**: 下载完成后,记得关闭输入流和输出流,避免资源泄漏。 9. **示例代码**: 这是一个简单的下载图片的示例代码: `...
InputStreamReader reader = new InputStreamReader(in,"gb2312"); BufferedReader read = new BufferedReader(reader); StringBuilder builder = new StringBuilder(); String str = ""; while((str...
Struts2和MySQL是开发Web应用的常用技术组合,它们为服务端提供了强大的处理能力和数据库存储功能。在Android客户端与服务端的交互中,HTTP协议是连接两者的关键桥梁,允许客户端通过POST和GET请求发送数据并接收...
4. **.struts2插件**:为了支持JSON响应,我们需要在Struts2配置中启用`struts2-json-plugin`。这允许Action方法返回一个包含JSON数据的`ValueStack`或`Map`。 **二、Android请求流程** 1. **构建请求参数**:根据...
在Android开发中,异步处理是非常重要的一环,特别是在与服务器进行数据交互时,为了保持UI线程的流畅性,避免...在实际开发中,你可能还需要考虑异常处理、连接重试、缓存策略等问题,以提高应用的健壮性和用户体验。
总的来说,解决HTTP请求中的中文乱码问题,核心在于正确地设置编码格式,并在发送请求前对中文数据进行编码。无论是GET还是POST请求,都需要确保客户端和服务器之间对字符编码的一致理解。通过阅读提供的文档和示例...