package com.maidong.utils;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class InternetUtils {
private static final String USER_AGENT = "User-Agent";
public static String httpPost(String url, List<NameValuePair> nameValuePairs) throws ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
// List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
// Your DATA
// nameValuePairs.add(new BasicNameValuePair("id", "12345"));
// nameValuePairs.add(new BasicNameValuePair("stringdata",
// "eoeAndroid.com is Cool!"));
httpPost.setHeader(USER_AGENT, "Mozilla/4.5");
HttpEntity httpEntity = null;
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
httpEntity = httpclient.execute(httpPost).getEntity();
} finally {
//httpPost.abort();
}
return retrieveHttpEntity(httpEntity);
}
public static InputStream download(URL url) throws IOException {
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
return is;
}
public static byte[] downloadFileData(String surl) throws IOException {
URL url = new URL(surl);
URLConnection conn = url.openConnection();
// 获取长度
int length = (int) conn.getContentLength();
InputStream is = conn.getInputStream();
byte[] imgData = null;
if (length != -1) {
imgData = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0) {
System.arraycopy(temp, 0, imgData, destPos, readLen);
destPos += readLen;
}
}
return imgData;
}
public static InputStream download(String url) throws IOException {
return download(new URL(url));
}
public static String httpPost(String url) throws ClientProtocolException, IOException {
return httpPost(url, new ArrayList<NameValuePair>());
}
private static String retrieveHttpEntity(HttpEntity httpEntity) throws UnsupportedEncodingException, IllegalStateException,
IOException {
StringBuffer stringBuffer = new StringBuffer();
InputStreamReader is = new InputStreamReader(httpEntity.getContent(), HTTP.UTF_8);
BufferedReader bufferedReader = new BufferedReader(is);
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
}
return stringBuffer.toString();
}
public static String uploadFile(String actionUrl, String newName, InputStream fStream) {
String end = "\r\n";
String twoHyphens = "--";
String boundary = java.util.UUID.randomUUID().toString();
DataOutputStream ds = null;
try {
URL url = new URL(actionUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
/* 允许Input、Output,不使用Cache */
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
/* 设定传送的method=POST */
con.setRequestMethod("POST");
/* setRequestProperty */
con.setRequestProperty("Connection", "Keep-Alive");
con.setRequestProperty("Charset", "UTF-8");
con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
/* 设定DataOutputStream */
ds = new DataOutputStream(con.getOutputStream());
ds.writeBytes(twoHyphens + boundary + end);
ds.writeBytes("Content-Disposition: form-data; " + "name=\"Filedata\";filename=\"" + newName + "\"" + end);
ds.writeBytes(end);
/* 取得文件的FileInputStream */
// FileInputStream fStream = new FileInputStream(uploadFile);
/* 设定每次写入1024bytes */
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int length = -1;
/* 从文件读取数据到缓冲区 */
while ((length = fStream.read(buffer)) != -1) {
/* 将数据写入DataOutputStream中 */
ds.write(buffer, 0, length);
}
ds.writeBytes(end);
ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
ds.flush();
/* 取得Response内容 */
InputStream is = con.getInputStream();
int ch;
StringBuffer b = new StringBuffer();
while ((ch = is.read()) != -1) {
b.append((char) ch);
}
/* 将Response显示于Dialog */
// showDialog(b.toString().trim());
return b.toString().trim();
/* 关闭DataOutputStream */
} catch (Exception e) {
// showDialog("" + e);
} finally {
AppUtils.close(ds);
AppUtils.close(fStream);
}
return null;
}
/**
*
* @param s
* @return null if the given string is null.
* @throws UnsupportedEncodingException
*/
public static String decode(String s, String enc) throws UnsupportedEncodingException {
return s == null ? null : URLDecoder.decode(s, enc);
}
public static String encode(String s, String enc) throws UnsupportedEncodingException {
return URLEncoder.encode((s == null ? "" : s), enc);
}
/**
*
* 判断网络状态是否可用
*
* @return true: 网络可用 ; false: 网络不可用
*/
public static boolean isNetworkConnected(Activity activity) {
ConnectivityManager conManager = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conManager.getActiveNetworkInfo();
if (networkInfo != null) { // 这个判断一定要,要不然会出错
return networkInfo.isAvailable();
}
return false;
}
}
分享到:
相关推荐
描述安卓端http的请求,上行下行的操作,安卓网络编程的基础知识,欢迎大家来下载交流!
《Android 4.0网络编程详解》对Android 4.0网络编程中的XML形式,JSON操作,需要掌握的HTTP知识,数据下载上传,Socket编程,浏览器开发,Android中软件界面设计新大陆——采用HTML设计软件界面,Android应用程序的...
android客户端多线程下载,断点...网络搜索《Android 4.0 网络编程详解代码》中的 第5章:Android中的网络数据下载及JSON的操作 中代码不全,少了个终于的activity,现自己跑通后上传以供大家学习,包括客户端和服务端的
快速的Android网络库关于快速Android网络库快速的Android网络库是一个功能强大的库,可在上在Android应用程序中进行任何类型的联网。 快速的Android Networking Library负责每件事。 因此,您无需执行任何操作,只需...
没有网络的时候,将操作产生的本地图片(拍照,也可能是其他文件),存储起来。有网络的时候传输到文件服务器。 文件服务器只支持一个文件一个文件的传输。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴...需opencv官网下载OpenCV-android-sdk将其中的sdk覆盖工程中的sdk,由于sdk文件太大,这里就没有上传,是个空目录。
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
没有网络的时候,将操作产生的本地图片(拍照,也可能是其他文件)存储起来。有网络的时候传输到文件服务器。
《Android 4.0网络编程详解》对Android 4.0网络编程中的XML形式,JSON操作,需要掌握的HTTP知识,数据下载/上传,Socket编程,浏览器开发,Android中软件界面设计新大陆——采用HTML设计软件界面,Android应用程序的...
在 iOS开发中有大名鼎鼎的AFNetworking库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,此库的网络处理均基于Android的非UI线程,通过回调方法处理请求结果。...
FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器, 在imageview显示图片的时候播放动画等(默认是渐变动画显示)。 4、xUtils框架 项目地址:...
《Android应用开发详解》 ...Android 应用案例——无线点餐系统,通过一个真实的商业案例讲解了Android的各种应用,本项目包括操作员登录、点餐、结算、转台、并台、查台、更新数据和退出系统等餐厅点餐的常用操作
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
《Android4.0网络编程详解》对Android 4.0网络编程中的XML形式,JSON操作,需要掌握的HTTP知识,数据下载/上传,Socket编程,浏览器开发,Android中软件界面设计新大陆——采用HTML设计软件界面,Android应用程序的...
网络操作工具类(ToolNetwork.java),获取网络信息、更改切换网络等相关操作 日期操作工具类(ToolDateTime.java),获取日期、日期加减、格式化日期、日期转换等操作 XML操作工具类(ToolXml.java),基于DOM/...
《Android 4.0网络编程详解》对Android 4.0网络编程中的XML形式,JSON操作,需要掌握的HTTP知识,数据下载/上传,Socket编程,浏览器开发,Android中软件界面设计新大陆——采用HTML设计软件界面,Android应用程序的...
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴...需opencv官网下载OpenCV-android-sdk将其中的sdk覆盖工程中的sdk,由于sdk文件太大,这里就没有上传,是个空目录。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴...需opencv官网下载OpenCV-android-sdk将其中的sdk覆盖工程中的sdk,由于sdk文件太大,这里就没有上传,是个空目录。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴...需opencv官网下载OpenCV-android-sdk将其中的sdk覆盖工程中的sdk,由于sdk文件太大,这里就没有上传,是个空目录。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴...需opencv官网下载OpenCV-android-sdk将其中的sdk覆盖工程中的sdk,由于sdk文件太大,这里就没有上传,是个空目录。