Http请求通信(工具类)
Http请求通信(工具类)
异步消息处理流程是:
 private Handler handler = new Handler() {
           public void handleMessage(Message msg) {
               String response = (String) msg.obj;
               switch (msg.what) {//根据收到的消息的what类型处理
               case ###:
                   break;
               default:
                   super.handleMessage(msg);//这里最好对不需要或者不关心的消息抛给父类,避免丢失消息
                   break;
               }
           }        
sendHttpRequest方法有两个参数 1.请求地址 2.请求Json字符串。
HttpUtil.sendHttpRequest(请求地址, 请求Json),
new HttpCallbackListener() { @Override
public void onFinish(String response) {
// 返回内容执行具体的逻辑
Message message = new Message();
message.what = ###;
message.obj = response;
handler.sendMessage(message);
} @Override
public void onError(Exception e) {
// 异常情况进行处理
Toast.makeText(mContext, e.getMessage(), 0).show();
} });
Http请求通信(工具类):
 public class HttpUtil {
     public interface HttpCallbackListener {
         void onFinish(String response);
         void onError(Exception e);
     }
     public static void sendHttpRequest(final String urlStr,
             final String jsonStr, final HttpCallbackListener listener) {
         new Thread(new Runnable() {
             @Override
             public void run() {
                 HttpURLConnection connection = null;
                 try {
                     byte[] json = jsonStr.getBytes();
                     URL url = new URL(urlStr);
                     connection = (HttpURLConnection) url.openConnection();
                     connection.setDoOutput(true);
                     connection.setDoInput(true);
                     connection.setRequestMethod("POST");
                     connection.setUseCaches(false);
                     connection.setConnectTimeout(5000);
                     connection.setInstanceFollowRedirects(true);
                     connection.setRequestProperty("Content-Type",
                             String.valueOf(json.length));
                     connection.getOutputStream().write(json); // 通过输出流把数据写到服务器
                     // if (connection.getResponseCode() == 200) {
                     // 服务器返回的数据
                     BufferedReader in = new BufferedReader(
                             new InputStreamReader(connection.getInputStream()));
                     String line;
                     StringBuilder response = new StringBuilder();
                     while ((line = in.readLine()) != null) {
                         response.append(line);
                     }
                     if (listener != null) {
                         listener.onFinish(response.toString());
                     }
                     // }
                 } catch (Exception e) {
                     if (listener != null) {
                         listener.onError(e);
                     }
                 } finally {
                     if (connection != null) {
                         connection.disconnect();
                     }
                 }
             }
         }).start();
     }
 }
Http请求通信(工具类)的更多相关文章
- Https通信工具类
		记录一个在微信开发中用到的https通信工具类,以后会用到的. 用于https通信的证书信任管理器 import java.security.cert.CertificateException; im ... 
- HttpUtils 用于进行网络请求的工具类
		原文:http://www.open-open.com/code/view/1437537162631 import java.io.BufferedReader; import java.io.By ... 
- HTTP请求客户端工具类
		1.maven 引入依赖 <dependency> <groupId>commons-httpclient</groupId> <artifactId> ... 
- 发送http请求和https请求的工具类
		package com.haiyisoft.cAssistant.utils; import java.io.IOException;import java.util.ArrayList; impor ... 
- java并发编程系列原理篇--JDK中的通信工具类Semaphore
		前言 java多线程之间进行通信时,JDK主要提供了以下几种通信工具类.主要有Semaphore.CountDownLatch.CyclicBarrier.exchanger.Phaser这几个通讯类 ... 
- 分享自己配置的HttpURLConnection请求数据工具类
		>>该工具类传入string类型url返回string类型获取结果import java.io.BufferedReader;import java.io.InputStream;impo ... 
- java中模拟http(https)请求的工具类
		在java中,特别是java web中,我们经常需要碰到的一个场景是我们需要从服务端去发送http请求,获取到数据,而不是直接从浏览器输入请求网址获得相应.比如我们想访问微信接口,获取其返回信息. 在 ... 
- 高德地图web端笔记;发送http请求的工具类
		1.查询所有电子围栏 package com.skjd.util; import java.io.BufferedReader; import java.io.InputStream; import ... 
- httputil用http获取请求的工具类
		package com.xiaocan.demo.util; import java.io.IOException; import java.io.InputStream; import java.u ... 
- Java httpclent请求httpclentUtils工具类
		第一种写法: import java.io.IOException; import java.io.InterruptedIOException; import java.io.Unsupported ... 
随机推荐
- Codevs_1040_[NOIP2001]_统计单词个数_(划分型动态规划)
			描述 http://codevs.cn/problem/1040/ 与Codevs_1017_乘积最大很像,都是划分型dp. 给出一个字符串和几个单词,要求将字符串划分成k段,在每一段中求共有多少单词 ... 
- datax中oracleWriter
			在使用datax的oraclewriter时,由于对oracle的不熟悉,以及c++编译的不熟悉,颇费了一些周折.在此,记录一下,供再次使用的人参考. 1.oracleWriter :oracle提供 ... 
- ATL ActiveX 非管理员权限发布(支持vs2005)
			在win7系统中,vs2005开发的atl activex需要管理员权限才能注册. 解决方法: PerUserRegistration.h #pragma once class PerUserRegi ... 
- 今天遇到的i++问题之记录
			今天逛贴吧看到的,与自己预想的不同,于是在群里求解后方得知答案,遂记录之.代码来袭. function a(){ var i=1; i++; alert(i); } var c = a(); c(); ... 
- 荷兰国旗问题  划分成3部分 leecode
			public class Solution { public void sortColors(int[] A) { int len=A.length; int beg=0; int end=len-1 ... 
- 5   weekend01、02、03、04、05、06、07的分布式集群的HA测试  +  hdfs--动态增加节点和副本数量管理   +  HA的java api访问要点
			weekend01.02.03.04.05.06.07的分布式集群的HA测试 1) weekend01.02的hdfs的HA测试 2) weekend03.04的yarn的HA测试 1) wee ... 
- java读取配置文件
			java 读取文件可以用字节流和字符流. 由于一个汉字占两个字节,所以如果配置文件中有汉字,用字节流读取,会出现乱码. 用字符流则不会出现乱码. 配置文件 b.properties 文件如下: fam ... 
- switch语法中break,default作用说明
			转自:http://cjhbest999.iteye.com/blog/1137124 关于java中switch使用的一些说明 switch(表达式) { case 常量表达式1:语句1; .... ... 
- hdu 4634 Swipe Bo 搜索
			典型的bfs模拟 (广度优先搜索) ,不过有好多细节要注意,比如图中如果是 R# 走到这个R的话就无限往右走了,这样就挂了~肯定到不了出口.还有一种容易造成死循环的,比如 #E## DLLL D. ... 
- EasyUI-增删改操作
			最近公司要用easyui,这里自己看了官网几篇文章,遇到些问题,大多数的问题都是敲代码的时候笔误,其他有些地方确实需要注意一下,这里做些笔记. 1.在mysql中建好表之后修改id字段为递增字段,发现 ... 
