Android 网络请求get/post工具类:NetUtil
package
com.net.util;
import
java.io.IOException;
import
java.io.UnsupportedEncodingException;
import
java.util.List;
import
org.apache.http.HttpResponse;
import
org.apache.http.HttpStatus;
import
org.apache.http.NameValuePair;
import
org.apache.http.client.ClientProtocolException;
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.client.methods.HttpUriRequest;
import
org.apache.http.impl.client.DefaultHttpClient;
import
org.apache.http.util.EntityUtils;
import
org.json.JSONException;
import
org.json.JSONObject;
import
android.content.Context;
import
android.net.ConnectivityManager;
import
android.net.NetworkInfo;
import
android.util.Log;
import
android.widget.Toast;
public
class
NetUtil {
private
static
final
String TAG =
"NetUtil"
;
/**
* 网络连接是否可用
*/
public
static
boolean
isConnnected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if
(
null
!= connectivityManager) {
NetworkInfo networkInfo[] = connectivityManager.getAllNetworkInfo();
if
(
null
!= networkInfo) {
for
(NetworkInfo info : networkInfo) {
if
(info.getState() == NetworkInfo.State.CONNECTED) {
Log.e(TAG,
"the net is ok"
);
return
true
;
}
}
}
}
Toast.makeText(context,
"网络连接失败"
, Toast.LENGTH_SHORT).show();
return
false
;
}
/**
* 网络可用状态下,通过get方式向server端发送请求,并返回响应数据
*
* @param strUrl 请求网址
* @param context 上下文
* @return 响应数据
*/
public
static
JSONObject getResponseForGet(String strUrl, Context context) {
if
(isConnnected(context)) {
return
getResponseForGet(strUrl);
}
return
null
;
}
/**
* 通过Get方式处理请求,并返回相应数据
*
* @param strUrl 请求网址
* @return 响应的JSON数据
*/
public
static
JSONObject getResponseForGet(String strUrl) {
HttpGet httpRequest =
new
HttpGet(strUrl);
return
getRespose(httpRequest);
}
/**
* 网络可用状态下,通过post方式向server端发送请求,并返回响应数据
*
* @param market_uri 请求网址
* @param nameValuePairs 参数信息
* @param context 上下文
* @return 响应数据
*/
public
static
JSONObject getResponseForPost(String market_uri, List<NameValuePair> nameValuePairs, Context context) {
if
(isConnnected(context)) {
return
getResponseForPost(market_uri, nameValuePairs);
}
return
null
;
}
/**
* 通过post方式向服务器发送请求,并返回响应数据
*
* @param strUrl 请求网址
* @param nameValuePairs 参数信息
* @return 响应数据
*/
public
static
JSONObject getResponseForPost(String market_uri, List<NameValuePair> nameValuePairs) {
if
(
null
== market_uri ||
""
== market_uri) {
return
null
;
}
HttpPost request =
new
HttpPost(market_uri);
try
{
request.setEntity(
new
UrlEncodedFormEntity(nameValuePairs));
return
getRespose(request);
}
catch
(UnsupportedEncodingException e1) {
e1.printStackTrace();
}
return
null
;
}
/**
* 响应客户端请求
*
* @param request 客户端请求get/post
* @return 响应数据
*/
public
static
JSONObject getRespose(HttpUriRequest request) {
try
{
HttpResponse httpResponse =
new
DefaultHttpClient().execute(request);
int
statusCode = httpResponse.getStatusLine().getStatusCode();
if
(HttpStatus.SC_OK == statusCode) {
String result = EntityUtils.toString(httpResponse.getEntity());
Log.i(TAG,
"results="
+ result);
return
new
JSONObject(result);
}
}
catch
(ClientProtocolException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
catch
(JSONException e) {
e.printStackTrace();
}
return
null
;
}
}
Android 网络请求get/post工具类:NetUtil的更多相关文章
- Android网络请求框架
本篇主要介绍一下Android中经常用到的网络请求框架: 客户端网络请求,就是客户端发起网络请求,经过网络框架的特殊处理,让后将请求发送的服务器,服务器根据 请求的参数,返回客户端需要的数据,经过网络 ...
- Android 网络请求框架Retrofit
Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp ...
- Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)
最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所 ...
- Http请求通信(工具类)
Http请求通信(工具类) 异步消息处理流程是: 首先需要在主线程当中创建一个Handle对象,并重写handlerMessage()方法. 然后当子线程中需要进行UI操作时,就创建一个Message ...
- xamarin android网络请求总结
xamarin android中网络请求的框架非常多,在项目中使用的是第三方的一个网络请求框架restsharp,应该是github上.net网络请求最多star的框架,没有之一.这里就简单汇总了其他 ...
- Android 网络请求及数据处理
Android 网络请求: 1.Volley http://blog.csdn.net/t12x3456/article/details/9221611 2.Android-Async-Http ...
- Android 网络请求Retrofit + RxJava
一.背景 经常看到项目用Retrofit+RxJava+RxAndroid的框架,为了看懂项目的结构.现在来了解一下,Retrofit: Retrofit是Square 公司开发的一款正对Androi ...
- Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- Android开发之java代码工具类。判断当前网络是否连接并请求下载图片
package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...
随机推荐
- Axure快速原型教程01--原型说明下载和安装
Axure是一个快速画原型的工具 什么是原型? 估计进来的朋友应该都清楚,原型通俗来讲,不仅仅是在软件开发中使用,在很多行业中也需要用的,比如服装设计,建筑 ...
- AWVS扫描工具使用教程
上文AppScan扫描工具-工作原理&操作教程有写到Web安全漏洞扫描工具之一的APPScan,除此,还有另外一款国内使用比较主流的Web安全漏洞扫描工具——AWVS.相较于大容量的AppSc ...
- Dockerfile 构建前端nginx应用并用shell脚本实现jenkins自动构建
Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zh********h.cn RUN rm -f /etc/nginx/nginx.conf COPY n ...
- Web-URL编码流程图(详细了解乱码原因)
URL编码流程图 原URL---->GET时浏览器根据HTTP头的Content-Type的charset,POST根据(<meta http-equiv="Content-Ty ...
- Selenium webdriver 获取属性值 元素里的value
1.WebElement webElemt= webElement.findElement(By.xpath("//*[@class='xxxxxx]/a")); //在ie下使用 ...
- TensorFlow Google大会总结
一.概述 介绍TPU,需要使用XLA编译,否则没有做内部优化,无法达到加速的效果: TPU相关的性能分析器: 二.新版本的输入库 之前TensorFlow的输入方式: feed_dict: 太过于低效 ...
- 搞不懂为什么开发人员爱iOS恨Android?
导读:很多网站发表文章大同小异.唯有这个不同点,给大家分享. Android和iOS的较量一直都是人们津津乐道的话题.两个平台各有各的优势所在,同时也都力图能在各个方面赶超对手.对于用户来说,青菜萝卜 ...
- 【Android】详解Android的menu菜单
在软件应用过程中,菜单的存在是必不可少的,我这次讲一下,我对android菜单的一个基础做法吧 Android的菜单分为三种类型:选项菜单(Option Menu).上下文菜单(Context Men ...
- Block(二)内存管理与其他特性-b
一.block放在哪里 我们针对不同情况来讨论block的存放位置: 1.栈和堆 以下情况中的block位于堆中: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Kafka生产环境中的错误
最近在处理日志收集任务时,发现前端服务器用flume进行收集,逐步把所有的服务器都增加上.增加的差不多时.Kafka报了如下类似错误: 709 [main] WARN kafka.producer.a ...