Android端调用Java端

本文介绍了如何在Android端通过HttpClient调用Java服务端的方法。首先,确保Java端程序的URL为动态IP地址,以便手机和电脑都能访问。接着,详细讲解了Android端使用HttpClient的步骤,包括创建HttpClient对象、发送GET/POST请求、处理响应等内容,并提醒设置超时时间和开启网络权限的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备一个java端的程序

如:http://192.168.43.37:8080/T212_easyui/jsp/userAction.action?methodName=userList

这里用的是动态的IP地址,不能用localhost,动态地址会改变,可以先确认IP地址。以确保在手机和电脑都可以用。

二、通过httpclient调用java端。
1.简介httpclient

httpclient 是 Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和协议。 HtppClient来提交请求、接收响应。在API 23中,Google已经移除了移除了Apache HttpClient相关的类 ,在Android中要在build.gradle中的android {}中加上useLibrary ‘org.apache.http.legacy’,写好之后要同步 Sync show.

2.使用httpclient
HttpClient的使用步骤
(1)创建HttpClient对象
HttpClient httpClient = new DefaultHttpClient();

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

(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);

(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" />

(5)处理响应
响应状态码(200)
httpResponse.getStatusLine().getStatusCode()//如果返回200,那就一切正常
响应头
getAllHeaders()/getHeaders(String name)
响应内容
HttpEntity httpEntity = httpResponse.getEntity();//此对象包含服务器的响应内容
String result = EntityUtils.toString(httpEntity);

(6) httpclient的作用:在Java后台模拟浏览器访问后台的一个操作(通过代码的形式访问后台)

注意:
①如果地址错误,或服务器未开户,HttpClient这SB会等待N久(>24小时)。 所以请记得设置超时时间,所以请记得设置超时时间,所以请记得设置超时时间:另外HttpClient版本不一样,代码也不一样。下面的4.0版本的写法
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 2000);// 连接时间
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 2000);// 数据传输时间
②安卓端与Java端进行数据交互,是需要在安卓端打开网络权限(即手机APP要联网)
③真机需要在AndrManifest.xml中加上下面这行代码才能访问:

④客户端与Java端进行交互需要添加允许网络访问权限,不然会报错“java.lang.SecurityException: Permission denied (missing INTERNET permission?)”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值