先给出我们用到的工具类

1.发送请求的工具类

本实例采用HttpClient与服务器通信,用到了一个工具类对Httpclient进行封装:定义了两个方法来发送请求

getRequest:发送GET请求

postRequest :发送POST请求

HttpUtil.java(注意IP地址换成自己的IP地址,这个BASE_URL = "http://losthost:8080/auction/,要不然,你就)

  1. package com.infy.auction.client.util;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Map;
  6. import org.apache.http.HttpResponse;
  7. import org.apache.http.NameValuePair;
  8. import org.apache.http.client.ClientProtocolException;
  9. import org.apache.http.client.HttpClient;
  10. import org.apache.http.client.entity.UrlEncodedFormEntity;
  11. import org.apache.http.client.methods.HttpGet;
  12. import org.apache.http.client.methods.HttpPost;
  13. import org.apache.http.impl.client.DefaultHttpClient;
  14. import org.apache.http.message.BasicNameValuePair;
  15. import org.apache.http.util.EntityUtils;
  16. import android.util.Log;
  17. public class HttpUtil {
  18. private static final String TAG="HttpUtil";
  19. //创建HttpCilent对象
  20. public static HttpClient httpClient = new DefaultHttpClient();
  21. public static final String BASE_URL = "http://losthost:8080/auction/";
  22. //发送url的请求,服务器响应字符串
  23. public static String getRequest(String url) throws  Exception{
  24. //创建一个HttpGet对象
  25. HttpGet get = new HttpGet(url);
  26. //发送GET请求
  27. HttpResponse httpResponse = httpClient.execute(get);
  28. Log.i(TAG, "getReq ==getStatusCode--->" +httpResponse.getStatusLine().getStatusCode());
  29. //如果服务器成功地返回响应
  30. if(httpResponse.getStatusLine().getStatusCode() == 200){
  31. //获取响应的字符串
  32. String result = EntityUtils.toString(httpResponse.getEntity());
  33. Log.i(TAG, "getReq ==result--->" +result);
  34. return result;
  35. }
  36. return "";
  37. }
  38. //发送Post请求
  39. public static String postRequest(String url,Map<String, String> rawParams) throws Exception{
  40. Log.i(TAG, "postRequest--->begin");
  41. //创建HttpPost对象
  42. HttpPost post = new HttpPost(url);
  43. //如果传递的参数个数比较多,可以对传递的参数进行封装
  44. List<NameValuePair> params = new ArrayList<NameValuePair>();
  45. for(String key:rawParams.keySet()){
  46. //封装请求的参数
  47. params.add(new BasicNameValuePair(key, rawParams.get(key)));
  48. }
  49. //设置请求的参数
  50. post.setEntity(new UrlEncodedFormEntity(params,"utf-8"));
  51. //发送Post请求
  52. HttpResponse httpResponse = httpClient.execute(post);
  53. //如果服务器成功地返回响应
  54. Log.i(TAG, "HttpL---->" +httpResponse.getStatusLine().getStatusCode());
  55. if(httpResponse.getStatusLine().getStatusCode() == 200){
  56. //获取响应的字符串
  57. String result = EntityUtils.toString(httpResponse.getEntity());
  58. Log.i(TAG, "response-->" +result);
  59. return result;
  60. }
  61. return null;
  62. }
  63. }

显示各种对话框的工具类:Dialog.xml

  1. package com.infy.auction.client.util;
  2. import android.app.Activity;
  3. import android.app.AlertDialog;
  4. import android.content.Context;
  5. import android.content.DialogInterface;
  6. import android.content.DialogInterface.OnClickListener;
  7. import android.view.View;
  8. public class DialogUtil {
  9. //定义一个显示消息的对话框
  10. public static void showDialog(final Context ctx , String msg, boolean closeSelf) {
  11. // TODO Auto-generated method stub
  12. //创建一个AlertDialog.Builder对象
  13. AlertDialog.Builder builder = new AlertDialog.Builder(ctx).setMessage(msg).setCancelable(false);
  14. if(closeSelf){
  15. builder.setPositiveButton("确定", new OnClickListener() {
  16. @Override
  17. public void onClick(DialogInterface dialog, int which) {
  18. // TODO Auto-generated method stub
  19. //结束当前Activity
  20. ((Activity)ctx).finish();
  21. }
  22. });
  23. }else{
  24. builder.setPositiveButton("确定", null);
  25. }
  26. builder.create().show();
  27. }
  28. //定义一个显示指定组件的对话框
  29. public static void showDialog(Context ctx,View view){
  30. AlertDialog.Builder  builder = new AlertDialog.Builder(ctx).setView(view).setCancelable(false).setPositiveButton("确定", null);
  31. builder.create().show();
  32. }
  33. }

Android之实战篇(三)的更多相关文章

  1. (转载)Android项目实战(三十二):圆角对话框Dialog

    Android项目实战(三十二):圆角对话框Dialog   前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话 ...

  2. Android 逆向实战篇(加密数据包破解)

    1. 实战背景由于工作需要,要爬取某款App的数据,App的具体名称此处不便透露,避免他们发现并修改加密逻辑我就得重新破解了. 爬取这款App时发现,抓包抓到的数据是加密过的,如图1所示(原数据较长, ...

  3. Android项目实战(三十二):圆角对话框Dialog

    前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话框的"确定"按钮 难点:1.对话框边框圆角 ...

  4. Android项目实战(三十四):蓝牙4.0 BLE 多设备连接

    最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据. 查询了很多资料终于实现,现进行总结. ------------------------------------------- ...

  5. Android项目实战(三十九):Android集成Unity3D项目(图文详解)

    需求: Unity3D 一般用于做游戏 而且是跨平台的.原本设计是Android 应用端A(原生开发)进行一些业务处理,最后由A 打开Android 应用端B(Unity3D 游戏开发)进行游戏操作. ...

  6. Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)

    我们经常使用github上的开源项目,使用步骤也很简单 比如: compile 'acffo.xqx.xwaveviewlib:maven:1.0.0' 这里就学习一下如何将自己的类库做出这种可以供他 ...

  7. Android项目实战(三十七):Activity管理及BaseActivity的实现

    Ps:7-10月 完成公司两个app项目上架.漏掉的总结 开始慢慢补上. 一.写一个Activity的管理类 1.单例模式,以栈(先进后出)的形式存储Activity对象 public class A ...

  8. Android项目实战(三十五):多渠道打包

    多渠道打包: 可以理解为:同时发布多个渠道的apk.分别上架不同的应用商店.这些apk带有各自渠道的标签,用于统计分析各个商店的下载次数等数据. 实现步骤 一.添加友盟渠道标签 添加位置:app目录下 ...

  9. Android项目实战(三十三):AS下获取获取依赖三方的jar文件、aar 转 jar

    使用 Android studio 开发项目中,有几种引用三方代码的方式:jar 包 ,类库 ,gradle.build 的compile依赖. 大家会发现github上不少的项目只提供compile ...

随机推荐

  1. jQuery实现 图片的局部放大效果

    <html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> ...

  2. js基础和工具库

    /* * 作者: 胡乐 * 2015/4/18 * js 基础 和 工具库 * * * */ //根据获取对象 function hGetId(id){ return document.getElem ...

  3. svnserve: E000098: 不能绑定服务器套接字: 地址已在使用

    百度一下,所有资料都是 1.查找出目前正在使用的svnserve进程,然后kill掉 ps -aux | grep svnserve kill -9  xxx    // xxx代表svnserve对 ...

  4. 最近客户的apache+php环境运行很慢解决

    描述:[Wed Jul 24 15:49:11 2013] [warn] (OS 64)指定的网络名不再可用.  : winnt_accept: Asynchronous AcceptEx faile ...

  5. 第5章 字符串----char与String

    1.java有8种基本数据类型: 数值型:整数类型(byte,short,int,long) :浮点类型(float,double) 字符型:char  布尔型:true,false 2.char:  ...

  6. Java良葛格 学习笔记

    学习一个新的事物时,如果遇到一些概念无法很快理解,这可能是因为要理解概念会需要其它概念先建立起来,所以先暂时放下这个疑问也是一个学习方法,称之为“存疑” ,在以后的学习过程中待必要的概念学会后,目前的 ...

  7. shell 入门教程

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好.     一  惯例,第一个shell #!/bin/bash echo "Hello ...

  8. 【裸最小生成树】 模板 poj 1258

    #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #def ...

  9. mysql主从数据库

    Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库 ...

  10. Toy Storage POJ 2398

    题目大意:和 TOY题意一样,但是需要对隔板从左到右进行排序,要求输出的是升序排列的含有i个玩具的方格数,以及i值. 题目思路:判断叉积,二分遍历 #include<iostream> # ...