当前位置: 首页 > news >正文

网站定制开发报价单/站长之家备案查询

网站定制开发报价单,站长之家备案查询,四川省建设信息网站,中小企业网络营销存在的问题研究论文Okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架。接下来我们就来实现一下这个用Okhttp搭建一个android客户端访问java服务端的项目。网上有很多这样的例子,但都是只有android客户端的,这篇文章把服务端代码也贴…

Okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架。

接下来我们就来实现一下这个用Okhttp搭建一个android客户端访问java服务端的项目。

网上有很多这样的例子,但都是只有android客户端的,这篇文章把服务端代码也贴一下,这样有许多同学就可以完全在自己的机器上面部署环境来开发测试了。

首先新建一个anroid studio项目,在依赖库里面增加对okhttp库的引用

compile'com.squareup.okhttp:okhttp:2.7.5'

然后在AndroidManifest.xml里面增加权限

新建一个Activity,然后在布局文件里面增加一个Button,点击这个Button的时候我们去向服务器发送一个GET请求。关键代码如下:

Button btn = (Button) findViewById(R.id.btn);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

String url = "http://192.168.23.1:7111/web02/base";

OkHttpClient client = new OkHttpClient();

final Request request = new Request.Builder().url(url).build();

client.newCall(request).enqueue(new Callback() {

@Override

public void onFailure(Request request, IOException e) {

String  error = e.getMessage();

}

@Override

public void onResponse(Response response) throws IOException {

if(response.isSuccessful()){

String json = response.body().toString();

InputStream is =      response.body().byteStream();

ByteArrayOutputStream bos = new ByteArrayOutputStream();

int readed = 0;

byte buf[] = new byte[1024];

while ((readed = is.read(buf, 0, buf.length)) != -1) {

bos.write(buf, 0, readed);

}

byte[] result = bos.toByteArray();

Log.d("result","result:"+ new String(result));

is.close();

bos.close();

buf=null;

}

}

});

}

});

这里的url只是我本地测试的url,有的同学会问,我自己本地的url是多少呢?

如果是用同一台机器上的tomcat部署服务端的,怎么在自己的机器上部署能让自己的手机客户端访问到。

在用myeclipse发布一个程序到tomcat上后,用ipconfig命令测试下自己机器的ip。

122330839_1_2018011902394796

找到无线局域网的IPV4地址,这里是192.168.23.1。 端口号如果不知道的,可以去tomcat下面的server.xml里面查看部署的端口号是多少。我这里已经查看过了,是7111。

注意,要让你的手机和你的笔记本保持在一个局域网里面,你的手机可以访问这个地址,进而访问你笔记本上部署的tomcat服务。

所以在客户端程序代码里面url里面地址配置成http://192.168.23.1:7111/项目名/具体方法名(servlet)";比方说上面的例子,我是写成String url =

http://192.168.23.1:7111/web02/base;

好了。

客户端完成后,接下来是服务端的编写。

服务端很简单,写一个简单的Servlet去接受数据。

package com.example.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

*/

public class BaseServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("doGet");

handleRequest(req,resp);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("dopost");

handleRequest(req,resp);

}

private void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws IOException {

req.setCharacterEncoding("UTF-8");  // 设置字符集

resp.setCharacterEncoding("UTF-8");

resp.setHeader("Cache-Control", "no-store");

PrintWriter out = resp.getWriter(); // 准备输出

out.println("");

out.println("

WEB开发");

out.println("

");

out.println("

Hello World

");

out.println("");

out.println("");

out.close();// 关闭输出

}

}

BaseServlet当中重写了 doGet方法和doPost方法,在这里我把两种请求方式都做了统一处理。要注意的是,要删掉原来servlet里面的super.doGet()方法和super.doPost(),否则在OkHttp的 response.isSuccessful())里面会返回失败。为什么会这样呢?我们找到Response类的源代码

/**

* Returns true if the code is in [200..300), which means the request was

* successfully received, understood, and accepted.

*/

public boolean isSuccessful() {

return code >= 200 && code 

}哦,其实就是判断这个code是否等于200.

因为servlet默认的super.doGet()方法里面返回的code是405,所以这里面如果保留super.doGet()会出错。

OK,最后在配置文件web.xml里面配置刚才写的Servelt

base

com.example.servlet.BaseServlet

base

/base

最后测试一下,控制台打印返回的xml信息,说明连接成功。

122330839_2_20180119023947425

http://www.jmfq.cn/news/5007781.html

相关文章:

  • 学销售去哪个学校最好/重庆seo技术教程博客
  • java移动网站开发/免费广告发布平台app
  • 软件正版化情况及网站建设情况/广告推广有哪些平台
  • 深圳网站建设自己人/怎么样在百度上推广自己的产品
  • 旅游网站的建设的意义/seo零基础视频教程
  • 免费提供ppt模板的网站/湖南靠谱关键词优化
  • 那个网站做二手车好/搜索引擎的使用方法和技巧
  • 网站建设维护什么意思/seo挂机赚钱
  • 作者自己建立的网站/兰州seo整站优化服务商
  • 中小企业网站建设行情/南宁百度seo排名
  • 网站开发项目怎么接/网络推广长沙网络推广
  • 网站规划的原则/兰州seo公司
  • 沈阳高端网站定制开发/快速建站工具
  • 长春网站建设推荐网诚传媒/无锡网络公司
  • 服装公司网站建设/windows优化大师怎么使用
  • 江门网络平台/seo站长综合查询工具
  • 网站制作关键技术/营销方案策划书
  • 北京做网站公司有哪些/国产十大erp软件
  • wordpress 站点地址/培训机构需要哪些证件
  • 皮具网站建设/网站权重是怎么提升的
  • 交通建设工程质量监督局网站/汕头seo不错
  • 日本人做爰过程网站/百度官网推广平台电话
  • 查工作单位的网站/培训机构查询网
  • 网页开发基础答案/佛山seo外包平台
  • 网站建设 素材/微信小程序开发费用
  • 网站建设seo优化的好处/seo技巧seo排名优化
  • 公司手机版网站模板/成功营销案例100例
  • 吴江区建设局网站/企业营销策划合同
  • 公司内部网站的作用/网站收录
  • 武汉做网站优化公司/外贸网站优化公司