Android 使用URLConnection来post数据
/**
* @param postUrl
* 需要post的地址
* @param map
* 存储数据的map
* @param handler
* 处理message的handler
*/
public static void postDatas(String postUrl, Map<String, String> map,
Handler handler) {
HttpURLConnection connection = null;
URL url; int result_code;
// 拼串
StringBuffer sb = new StringBuffer();
if (map != null) {
for (Entry<String, String> e : map.entrySet()) {
sb.append(e.getKey());
sb.append("=");
sb.append(e.getValue());
sb.append("&");
}
sb.substring(0, sb.length() - 1);
} try {
url = new URL(postUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setConnectTimeout(3000); connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded"); OutputStreamWriter osw = new OutputStreamWriter(
connection.getOutputStream(), "UTF-8");
osw.write(sb.toString());
osw.flush();
osw.close(); StringBuffer buffer = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "UTF-8"));
String temp;
while ((temp = br.readLine()) != null) {
buffer.append(temp);
// br.readLine();
buffer.append("\n");
} JSONObject jsonObject = new JSONObject(buffer.toString()); JSONObject dataObject = jsonObject.getJSONObject("data"); result_code = dataObject.getInt("result"); Message message = Message.obtain(); message.obj = result_code; handler.sendMessage(message); } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
} }
以上方法需要handler作为处理消息结果;
再写一个fragment里的handler:
private static class MyHandler extends Handler {
private final WeakReference<FragmentActivity> refer;
private final WeakReference<AccountSetting> fragRefer;
public MyHandler(FragmentActivity act, AccountSetting frag) {
refer = new WeakReference<FragmentActivity>(act);
fragRefer = new WeakReference<AccountSetting>(frag);
}
@Override
public void handleMessage(Message msg) {
FragmentActivity act = refer.get();
AccountSetting frag = fragRefer.get();
switch (msg.what) {
case MSG_PIC:
if (act != null && frag != null && frag.isResumed()) {
int result_code = (Integer) msg.obj;
if (result_code == 0) {
ToastUtils.toastWithMessage(act, "上传成功!");
} else {
ToastUtils.toastWithMessage(act, "上传失败!");
}
}
break;
default:
break;
}
}
}
Android 使用URLConnection来post数据的更多相关文章
- Android 使用URLConnection下载音频文件
本文链接: Android 使用URLConnection下载音频文件 使用MediaPlayer播放在线音频,请参考Android MediaPlayer 播放音频 有时候我们会需要下载音频文件.这 ...
- Android系统的五种数据存储形式(二)
之前介绍了Android系统下三种数据存储形式,今天补充介绍另外两种,分别是内容提供者和网络存储.有些人可能认为内存提供者和网络存储更偏向于对数据的操作而不是数据的存储,但这两种方式确实与数据有关,所 ...
- Android系统的五种数据存储形式(一)
Android系统有五种数据存储形式,分别是文件存储.SP存储.数据库存储.contentprovider 内容提供者.网络存储.其中,前四个是本地存储.存储的类型包括简单文本.窗口状态存储.音频视频 ...
- 解决Android与服务器交互大容量数据问题
对于目前的状况来说,移动终端的网络状况没有PC网络状况那么理想.在一个Android应用中,如果需要接收来自服务器的大容量数据,那么就不得不考虑客户的流量问题.本文根据笔者的一个项目实战经验出发,解决 ...
- Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- Android java传递string类型数据给C
本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...
- Android 采用post方式提交数据到服务器
接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout ...
- Android利用Fiddler进行网络数据抓包
最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...
- Android中突发情况Activity数据的保存和恢复
Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...
随机推荐
- 设计模式:空对象模式(Null Object Pattern)
设计模式:空对象模式(Null Object Pattern) 背景 群里聊到<ASP.NET设计模式>,这本书里有一个“Null Object Pattern”,大家就闲聊了一下这个模式 ...
- OpenRisc-37-OpenRISC的CPU&core的整体架构分析
引言 前面我们分析了ORPSoC的整体架构,并对其子系统进行了深入的分析和了解.但对于ORPSoC的核心模块or1200_top及其内部的core--or1200_cpu模块却鲜有涉及,算是ORPSo ...
- Linux笔记(一) - 目录处理命令
(1)列出文件: ls-a 显示所有文件及目录,包括隐藏文件-l 显示详细信息(长格式显示)-d 显示目录本身-h 人性化显示-i 查看i节点(2)创建目录:mkdir-p 递归创建可以同时创建多个, ...
- Picasso解决 TextView加载html图片异步显示
项目中有这样一个需求: textview加载一段 html标签 其中包含 "<Img url= " 图片异步展示 而且 根据图片的比例 宽度满屏展示. 思路: 重写textv ...
- app外包开发注意事项大全『最新』
随着移动互联网的高速发展,很多互联网创业公司或传统向互联网转型的公司都急需发开一款app软件,多数公司会选择让外包公司来开发.问题来了,App外包市场鱼龙混杂,我们要如何在这里面选择一个靠谱的公司,这 ...
- 瑶瑶GBK好的,UTF-8卡死
请求地址: 开发环境核心 esb : http://10.15.22.120:8866/0203000007/EmpAndDptRelateInfoSync/V1 用gbk可以马上返回. 用utf-8 ...
- jquery通过attr取html里自定义属性原来这么方便啊
<script type="text/javascript"> function fangGouWuChe(obj) { //放入购物车 var sMat = $(o ...
- 【NOIP2013】DAY1题解+代码
T1 傻逼快速幂,敲敲就过了. 我跟你们讲个笑话当时我以为这个数据范围过不了于是想出了求GCD再推规律什么的magic方法中途还咨询了某个学长. 然后怎么想都是不可做. ……直到我发现我昨年的代码一个 ...
- 【LeetCode】23. Merge k Sorted Lists
合并k个已合并链表. 思路:先把链表两两合并,直到合并至只有一个链表 /** * Definition for singly-linked list. * struct ListNode { * in ...
- Windows下载地址
文件名 cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso SHA1 9B57E67888434C24DD683968A3CE2C72755 ...