webservice->xml

jackson->json

从第三方项目中拿数据通常有两种方式(根据数据交互的格式来定)
xml->webservice/httpClient
json->httpClient
java java
java android
java ios
java 微信

  1. jackson
    1.1 Java->Json
    1.1.1 ObjectMap
    1.1.2 JsonGenerator
    1.1.3 @JsonIgnore
    hibernate中一对多、多对多双向关联会出现这种死循环

  2. 简介
    2.1 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、
    功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和协议。
    2.2 Android已成功集成了HttpClient,这意味这开发人员可以直接在Android应用中使用
    HtppClient来提交请求、接收响应

    注:在API 23中,Google已经移除了移除了Apache HttpClient相关的类 ,
    在build.gradle中的android {}中加上
    useLibrary ‘org.apache.http.legacy’
    详情见资料“”

    httpclient的作用是在后台模拟,浏览访问后台代码的操作
    案例一:HttpClient的使用步骤

  3. HttpClient的使用步骤
    3.1 创建HttpClient对象
    HttpClient httpClient = new DefaultHttpClient();

3.2 创建HttpGet(或HttpPost)对象
HttpGet HttpGet = new HttpGet(“http://www.baidu.com”);
HttpPost httpPost = new HttpPost(“http://www.baidu.com”);

3.3 添加参数(可选)
setParams(HttpParams params)//HttpGet和HttpPost共有
setEntity(HttpEntity entity)//HttpPost独有

  List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("age", "20"));
params.add(new BasicNameValuePair("like", "aa"));
params.add(new BasicNameValuePair("like", "bb"));
params.add(new BasicNameValuePair("like", "cc"));
params.add(new BasicNameValuePair("newsCategoryId", "1"));
HttpEntity paramEntity = new UrlEncodedFormEntity(params,"UTF-8");
httpPost.setEntity(paramEntity);

3.4 发送GET(或POST)请求,并获得响应
HttpResponse httpResponse = httpClient.execute(HttpUriRequest request);

  注1:HttpUriRequest为HttpGet和HttpPost的父类注2:需要添加允许网络访问权限,不然会报错“java.lang.SecurityException: Permission denied (missing INTERNET permission?)”<uses-permission android:name="android.permission.INTERNET" />注3:如果地址错误,或服务器未开户,HttpClient这SB会等待N久(>24小时)。所以请记得设置超时时间,所以请记得设置超时时间,所以请记得设置超时时间所以请记得设置超时时间,所以请记得设置超时时间,所以请记得设置超时时间所以请记得设置超时时间,所以请记得设置超时时间,所以请记得设置超时时间另外HttpClient版本不一样,代码也不一样。下面的4.0版本的写法httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 2000);// 连接时间httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 2000);// 数据传输时间

3.5 处理响应
3.5.1 响应状态码(200)
httpResponse.getStatusLine().getStatusCode()

3.5.2 响应头getAllHeaders()/getHeaders(String name)3.5.3 响应内容HttpEntity httpEntity = httpResponse.getEntity();//此对象包含服务器的响应内容String result = EntityUtils.toString(httpEntity);

案例二:使用HttpClientUtils与服务器通信
4. Android客户端与服务器通信
4.1 JSON数据交换
android系统内置了对象json的支持,另外json其实就以下几个对象的使用:
JSONObject、JSONArray、JSONStringer、JSONException
4.2 web service,底层使用xml交换数据

  1. 关于org.apache.http.conn.HttpHostConnectException: Connection to refused错误的解决办法
    增加网络访问权限:
    找到 AndroidManifest.xml 文件。在application标签后面加上
    检查ip地址:
    启动的android模拟器吧自己也当成127.0.0.1和localhost,如果使用了localhost或者127.0.0.1则会被拒绝访问,
    把ip地址改成实际地址,如:192.168.X.X

安卓获取Java端连接相关推荐

  1. 获取Java系统相关信息

    1 package com.test; 2 3 import java.util.Properties; 4 import java.util.Map.Entry; 5 6 import org.ju ...

  2. java获取环境变量路径_通过System获取java环境变量的路径

    通过System获取java环境变量的路径代码为: import java.io.FileNotFoundException; import java.io.FileOutputStream; imp ...

  3. linux获取java环境变量的值,linux获取java环境变量的值

    linux获取java环境变量的值 [2021-02-11 00:17:01]  简介: 服务器 这篇文章主要为大家展示了linux环境下怎么配置环境变量,内容简而易懂,希望大家可以学习一下,学习完之 ...

  4. java 获取sqlsession_获取Java的MyBatis框架项目中的SqlSession的方法

    从XML中构建SqlSessionFactory从XML文件中构建SqlSessionFactory的实例非常简单.这里建议你使用类路径下的资源文件来配置. String resource = &qu ...

  5. 获取Java接口的所有实现类

    获取Java接口的所有实现类 前言:想看基于spring 的最简单实现方法,请直接看 第七步. 本文价值在于 包扫描的原理探究和实现 一.背景 项目开发中,使用Netty做服务端,保持长连接与客户端( ...

  6. java 线程 获取消息_获取java线程中信息

    怎样获取java线程中信息? 在进行多线程编程中,比较重要也是比较困难的一个操作就是如何获取线程中的信息.大多数人会采取比较常见的一种方法就是将线程中要返回的结果存储在一个字段中,然后再提供一个获取方 ...

  7. java导出 elsx 文件,如何获取java导出的excel文件,发送请求导出excle文件

    如何获取java导出的excel文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 request.setCharacterEncoding("utf-8"); ...

  8. 反射-获取java私有内部类反射类型、私有字段

    获取JAVA私有内部类反射类型 方式一 Class.forName("外部类完整路径$内部私有类类名"); 方式二 通过获取对应私有内部类的字段而获取 完整的类名 Class.fo ...

  9. java 线程转储_获取Java线程转储的常用方法(推荐)

    1. 线程转储简介 线程转储(Thread Dump)就是JVM中所有线程状态信息的一次快照. 线程转储一般使用文本格式, 可以将其保存到文本文件中, 然后人工查看和分析, 或者使用工具/API自动分 ...

最新文章

  1. 网站性能越来越差怎么办?
  2. 计算机丢失mfc120u.dll,mfc120u.dll丢失怎么修好
  3. 数字图像处理:第二十二章 基于模型的编码
  4. shell 本地接口自动化
  5. mysql三大范式_MySQL学习笔记
  6. CSS自学笔记(15):CSS3多列布局
  7. 防止浏览器拦截的新窗口打开链接方案
  8. iOS开发之项目经验总结
  9. CentOS 7 安装Java 1.8
  10. H3C交换机常用配置命令
  11. HDU-4826(DP动态)
  12. devise校验旧密码
  13. 例2-22 正弦信号的微分运算和积分运算
  14. 试题 算法训练 kAc给糖果你吃(贪心)
  15. 2021年R1快开门式压力容器操作考试题库及R1快开门式压力容器操作考试APP
  16. SpringCloud---熔断器Hystrix的作用--解决灾难性雪崩效应
  17. 什么是IaaS、PaaS、SaaS?
  18. vue路由小妙招用法
  19. javascript(js与css交互)
  20. 高并发技巧-redis和本地缓存使用技巧

热门文章

  1. 调整连字符号分隔字母的个数
  2. logo是啥_logo是什么?
  3. dell 虚拟linux,戴尔:Linux是轻松构建虚拟主机的关键
  4. java openresty 调用_Openresty使用zlib解压缩response body
  5. 基于深度学习检测驾驶员的走神行为
  6. 用SegNet进行室内布局语义分割
  7. BERT+CRF互联网金融新实体发现
  8. 和显卡驱动要配套吗_显卡有必要更新驱动程序吗?老玩家的建议请收好
  9. R-数据挖掘 | 聚类分析中的各种相异(似)度计算
  10. poj 3322 Bloxorz I (bfs+辅助数组减代码量)