android客户端访问服务端,服务端返回json数据

json这里选用了fast-json

先看服务端代码如下

package novelserver.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Novel;
import spider.BiqugeNovelPageProcesser;
import spider.BiqugeNovelPipeline;
import spider.NovelList;
import us.codecraft.webmagic.Spider;

import com.alibaba.fastjson.JSON;
/**
 * 首页推荐
 * @author liangzhenghui
 *
 */
@WebServlet(urlPatterns={"/homeRecommend"})
public class HomeRecommend extends HttpServlet {

	private static final long serialVersionUID = 430306605309121990L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		//笔趣阁
		String url = "http://www.biquge.com/";
        Spider.create(new BiqugeNovelPageProcesser()).addUrl(url).addPipeline(new BiqugeNovelPipeline()).run();
        List<Novel> novelList = NovelList.getNovelList();
        //解决中文乱码问题
        resp.setContentType("text/html;charset=UTF-8");  //目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
        //的目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据以UTF-8编码后发向浏览器;
        resp.setCharacterEncoding("UTF-8"); 
        PrintWriter out = resp.getWriter();
        out.write(JSON.toJSONString(novelList));
	}
}

android客户端向服务端发起请求以及接收返回数据代码如下

public static List<Novel> getHotNovelList() {
		List<Novel> novelList = new ArrayList<Novel>();
		String url = "http://192.168.1.104:8080/novel/homeRecommend";
		DefaultHttpClient httpclient = new DefaultHttpClient();
		HttpGet httpGet = new HttpGet(url);
		try {
			HttpResponse response = httpclient.execute(httpGet);
			novelList = JSON.parseArray(
					EntityUtils.toString(response.getEntity()), Novel.class);
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return novelList;
	}


转载于:https://my.oschina.net/liangzhenghui/blog/197117

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值