一、web应用端
1、servlet
package com.caiz.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class AcceptServelet
*/
@WebServlet("/AcceptServelet")
public class AcceptServelet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String title = request.getParameter("title");
String id = request.getParameter("id");
System.out.println("method=" + request.getMethod());
System.out.println("id=" + id);
System.out.println("title=" + title);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
2、filter,用于乱码处理
a、过滤器filter
package com.caiz.web.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
/**
* 参数编码处理过滤器
* @author HuangYucai
*/
@WebFilter("/*")
public class EncodingFilter implements Filter {
/**
* Default constructor.
*/
public EncodingFilter() {
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
if ("GET".equals(req.getMethod())) {
EncodedHttpServletRequest warpper = new EncodedHttpServletRequest(
req);
chain.doFilter(warpper, response);
} else {
req.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
b、包装request类
package com.caiz.web.filter;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
/**
* request的参数编码出来
* @author HuangYucai
*
*/
public class EncodedHttpServletRequest extends HttpServletRequestWrapper {
private HttpServletRequest request;
public EncodedHttpServletRequest(HttpServletRequest request) {
super(request);
this.request = request;
}
@Override
public String getParameter(String name) {
String value=request.getParameter(name);
if(value!=null){
try {
value=new String(value.getBytes("ISO8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
}
}
return value;
}
}
二、android应用端
1、主程序类:Activity
package com.caiz.android.htmlviewer;
import com.caiz.android.htmlviewer.service.PageService;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
/**
* 主程序类
* @author HuangYucai
*/
public class HtmlViewerActivity extends Activity {
/** Called when the activity is first created. */
private EditText pathText;
private Button viewBnt;
private TextView txtViewer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pathText= (EditText)this.findViewById(R.id.path);
viewBnt=(Button)this.findViewById(R.id.bnt);
txtViewer=(TextView)this.findViewById(R.id.viewer);
viewBnt.setOnClickListener(new BntOnclickListener());
}
public final class BntOnclickListener implements View.OnClickListener{
public void onClick(View v) {
String path=pathText.getText().toString();
String html;
try {//获取字符数据设置到TextView空间
html = PageService.getPageStr(path);
txtViewer.setText(html);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "获取网页失败", Toast.LENGTH_SHORT).show();
}
}
}
}
2、业务类service
package com.caiz.httpreq.service;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
/**
* Android发送数据到web的业务类
* @author HuangYucai
*
*/
public class HttpSendService {
// 通过GET方法提交数据
public boolean saveByGetMethod(int id, String title) throws Exception {
String path = "http://192.168.0.186:8080/web/AcceptServelet";
// 构造参数的Map
HashMap<String, String> params = new HashMap<String, String>();
params.put("id", String.valueOf(id));
params.put("title", title);
// 发送GET请求
return sendHttpClientRequest(path, params,"UTF-8");
}
// 通过HttpClient请求的方法
public boolean sendHttpClientRequest(String path, Map<String, String> params,String charsetName)
throws Exception {
// 设置请求参数的名值对
List<NameValuePair> pairList=new ArrayList<NameValuePair>();
for (Map.Entry<String, String> entry : params.entrySet()) {
pairList.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
}
UrlEncodedFormEntity entity=new UrlEncodedFormEntity(pairList,charsetName);//创建请求的url实体
HttpPost httpPost=new HttpPost(path);//创建http请求实例
httpPost.setEntity(entity);
DefaultHttpClient client=new DefaultHttpClient();// 实例化请求客户端
HttpResponse response=client.execute(httpPost);// 执行请求
if(response.getStatusLine().getStatusCode()==200){// 请求成功
return true;
}
return false;
}
// 发送GET请求的方法
public boolean sendGetRequest(String path, Map<String, String> params,String charsetName)
throws Exception {
// 拼接带参数的请求路径
StringBuilder url = new StringBuilder(path);
url.append("?");
for (Map.Entry<String, String> entry : params.entrySet()) {
url.append(entry.getKey()).append("=")
.append(URLEncoder.encode(entry.getValue(),charsetName))
.append("&");
}
url.deleteCharAt(url.length() - 1);
// 发送请求
HttpURLConnection conn = (HttpURLConnection) (new URL(url.toString())
.openConnection());
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
if (conn.getResponseCode() == 200) {//如果发送成功
return true;
}
return false;
}
// 发送Post请求的方法
public boolean sendPostRequest(String path, Map<String, String> params,String charsetName)
throws Exception {
// 拼接带参数的请求路径
StringBuilder data = new StringBuilder("");
for (Map.Entry<String, String> entry : params.entrySet()) {
data.append(entry.getKey()).append("=")
.append(URLEncoder.encode(entry.getValue(),charsetName))
.append("&");
}
data.deleteCharAt(data.length() - 1);
byte[] dataBytes=data.toString().getBytes();
// 发送请求
HttpURLConnection conn = (HttpURLConnection) (new URL(path.toString()).openConnection());
conn.setRequestMethod("POST");
conn.setConnectTimeout(5000);
conn.setDoOutput(true);//设置可以输出数据
//设置内容类型
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//设置内容长度
conn.setRequestProperty("Content-Length", String.valueOf(dataBytes.length));
OutputStream outStream =conn.getOutputStream();
outStream.write(dataBytes);
if (conn.getResponseCode() == 200) {//如果发送成功
return true;
}
return false;
}
}
3、在主配置文件Androidmanifset.xml配置访问网络的权限
<uses-permission android:name="android.permission.INTERNET"/>
发表评论
-
maven的依赖
2013-07-28 23:37 869<?xml version="1.0&qu ... -
中文乱码解决方案
2013-06-25 00:33 1334中文乱码解决方案 > ... -
android从web应用读取xml和json数据实战
2012-12-13 22:43 1283一、web应用主要代码: 1、domian News.jav ... -
Android自学笔记
2012-12-11 22:41 853=============================== ... -
asp.net 的文本编辑器kindeditor的使用
2012-11-30 23:08 18001、作用: 在.net开发过程中,经常需要文章信息发布 ... -
asp.net系统增加用户登录后修改密码的功能
2012-11-30 22:45 2652[size=xx-large][size=large]1、增加 ... -
中层干部测评系统增加修改密码的功能
2012-11-30 21:20 0******************************* ... -
Android学习笔记2012年(2012-11-23至2012-11-27)
2012-11-27 20:59 1165******************************* ... -
Android学习笔记2012年(上)
2012-11-27 20:57 843Android学习笔记2012年 一、Android应用的目 ...
相关推荐
android通过POST和GET向服务器发送数据.包括使用普通HTTP协议发送和使用android内置的HttpClient进行发送。
android 客户端向服务器端上传数据 用了post和get请求 包括协议的如何拼接怎么向服务端发送xml数据 都已经封装好了 方法 可以直接使用!包含了文件的上传
Android中通过GET和POST方式以及使用HttpClient框架通过网络通信提交参数给web应用案例!
_网络通信之通过GET和POST方式提交参数给web应用
玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的CHttpClient类,该类实现了Htpp和Https的get post方法。 2:...
Android端使用get post 方法提交数据到服务器demo 传智播客张泽华Android视频54-57代码 包括web和Android端 仅供学习
android get和post 获取json xml数据
android 后台 post和get 请求数据。定义接收数据编码
此demo演示android通过get和post请求方法同服务器交互,测试需要tomcat,具体参考 http://blog.csdn.net/youmingyu/article/details/52524538
这个程序代码很好的实现了,通过get post 两种方式与服务器进行通讯的连接!需要了解android 网络传输的朋友可以下载看看!!
Android中Https请求get和post 博客地址:http://blog.csdn.net/lsf1025995457/article/details/51794377
android基础 POST GET 读取后台语言(PHP JSP)的程序!
HTTP 的工作方式是客户机与服务器之间的请求-应答协议。...在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据
post和get请求的区别 POST 和 GET 是 HTTP 请求方法,用于在客户端和服务器之间传递数据和请求资源。它们之间的主要区别在于数据传输和请求的方式,以及...选择使用哪种方法取决于您的应用程序需求和所处理的数据类型。
这个是关于android的OkHttp3框架的代码实例,里面包括POST和GET请求,请大家多多指教。
Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,Api接口调用封装,实现POSt,GET等数据请求,...
本资源是一个封装类,采用异步方式解决了Wininet不能设置超时的问题,当前异步采用C++...MFC程序中通过HttpGet和HttpPost方式向WebService发送请求,WebService以Json的方式返回数据,MFC程序解析Json,得到指定数据。
.net 后台Post,get方式调用webapi,包括上传文件
android发送get,post请求工具类
完整的向web发送get已经post请求的java程序