没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Android 网路通信之 http
在 Android 中,除了使用 java.net 包下的 API 访问 HTTP 服务之外,我们还可以换一种途
径去完成工作.Android SDK 附带了 Apache 的 HttpClient API.Apache HttpClient 是一个完善的
HTTP 客户端,它提供了对 HTTP 协议的全面支持,可以使用 HTTP GET 和 POST 进行访问.下
面我们就结合实例,介绍一下 HttpClient 的使用方法:
java 代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package=""
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!-- 配置测试要使用的类库 -->
<uses-library android:name="android.test.runner"/>
</application>
<!-- 配置测试设备的主类和目标包 -->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.scott.http"/>
<!-- 访问 HTTP 服务所需的网络权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-sdk android:minSdkVersion="8" />
</manifest>
然后,我们的单元测试类需要继承 android.test.AndroidTestCase 类,这个类本身是继承
junit.framework.TestCase,并提供了 getContext()方法,用于获取 Android 上下文环境,这
个设计非常有用,因为很多 Android API 都是需要 Context 才能完成的.
现在让我们来看一下我们的测试用例,HttpTest.java 代码如下:
java 代码:
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import junit.framework.Assert;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.InputStreamBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.test.AndroidTestCase;
public class HttpTest extends AndroidTestCase {
private static final String PATH = "http://192.168.1.57:8080/web";
public void testGet() throws Exception {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(PATH + "/TestServlet?id=1001&name=john&age=60");
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
InputStream is = response.getEntity().getContent();
String result = inStream2String(is);
Assert.assertEquals(result, "GET_SUCCESS");
}
}
public void testPost() throws Exception {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(PATH + "/TestServlet");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id", "1001"));
params.add(new BasicNameValuePair("name", "john"));
params.add(new BasicNameValuePair("age", "60"));
HttpEntity formEntity = new UrlEncodedFormEntity(params);
post.setEntity(formEntity);
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
InputStream is = response.getEntity().getContent();
String result = inStream2String(is);
Assert.assertEquals(result, "POST_SUCCESS");
}
}
public void testUpload() throws Exception {
InputStream is = getContext().getAssets().open("books.xml");
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(PATH + "/UploadServlet");
InputStreamBody isb = new InputStreamBody(is, "books.xml");
MultipartEntity multipartEntity = new MultipartEntity();
multipartEntity.addPart("file", isb);
multipartEntity.addPart("desc", new StringBody("this is description."));
剩余7页未读,继续阅读
资源评论
- chenkunlian2014-06-29很好。可以参考
科奇星
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电力系统优化调度,python实现benders分解算法
- C#上位机与台达PLC通信,modbus TCP协议 1.真实使用项目,该程序框架完整,适合在此基础上开发项目 2.使用VS
- Python医学数据分析,医学数据采集,采集网站,采集方法,便于探索医学数据
- MATLAB Simulink电动汽车转弯制动ABS模型,联合直接横摆力矩DYC 转向制动稳定性控制 软件使用:Matlab
- 西门子PLC1200博途V16程序画面例程,具体项目工艺为制药厂生物发酵系统,程序内有报警,模拟量标定处理,温度PID,称重仪表
- 大型语言模型中的损失函数及其应用场景解读
- Simulink永磁同步电机(PMSM)模型,一共有两个,分别是基本型永磁同步电机模型(B-PMSM)和磁饱和型永磁同步电机模型
- 西门子S7-1200PLC脉冲控制伺服程序案例 此程序是关于西门子1200PLC以PTO脉冲方式控制伺服电机,步进电机的功能块程
- OpenScenario场景仿真结构思维导图, OpenScenario是 自动驾驶仿真软件carla推出来的场景仿真标准,可配
- 永磁同步电机的控制算法仿真模型: 1. 永磁同步电机的MRAS无传感器矢量控制: 2. 永磁同步电机的SMO无传感器矢量控制(反
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功