/**
* @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数据的更多相关文章

  1. Android 使用URLConnection下载音频文件

    本文链接: Android 使用URLConnection下载音频文件 使用MediaPlayer播放在线音频,请参考Android MediaPlayer 播放音频 有时候我们会需要下载音频文件.这 ...

  2. Android系统的五种数据存储形式(二)

    之前介绍了Android系统下三种数据存储形式,今天补充介绍另外两种,分别是内容提供者和网络存储.有些人可能认为内存提供者和网络存储更偏向于对数据的操作而不是数据的存储,但这两种方式确实与数据有关,所 ...

  3. Android系统的五种数据存储形式(一)

    Android系统有五种数据存储形式,分别是文件存储.SP存储.数据库存储.contentprovider 内容提供者.网络存储.其中,前四个是本地存储.存储的类型包括简单文本.窗口状态存储.音频视频 ...

  4. 解决Android与服务器交互大容量数据问题

    对于目前的状况来说,移动终端的网络状况没有PC网络状况那么理想.在一个Android应用中,如果需要接收来自服务器的大容量数据,那么就不得不考虑客户的流量问题.本文根据笔者的一个项目实战经验出发,解决 ...

  5. Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  6. Android java传递string类型数据给C

    本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...

  7. Android 采用post方式提交数据到服务器

    接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout ...

  8. Android利用Fiddler进行网络数据抓包

    最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...

  9. Android中突发情况Activity数据的保存和恢复

    Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...

随机推荐

  1. transaction manager has disabled its support for remote/network transactions. 该伙伴事务管理器已经禁止了它对远程/网络事务

    最近再用SSIS做数据归档,里面用到了分布式事务.在开发阶段是在一台计算机上运行只要是启动分布式服务就没什么问题,可是昨天把它部署到uat的时候遇到问题,错误信息是: 最后找到解决方案: 确认&quo ...

  2. Linux:备份

    一.每日备份数据 该脚本backupday.sh用来每日备份你需要备份的文件或目录 使用办法 1)打开脚本修改要备份的目录或文件和备份到的目录(如从A备份到B) 2)修改后运行脚本 需要备份数据时,直 ...

  3. oracle-计算工作日

    数据库模拟表如下 operate_id operate_type operate_date process_sn 1 GD 2013-09-15 17:18:37 10001 2 JD 2013-09 ...

  4. 背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid

    [源码下载] 背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid 作者:webabcd 介绍背 ...

  5. 逃出克隆岛 (codevs 2059)

    较普通的走迷宫的题 传送门 :codevs 2059 逃出克隆岛 思路 :BFS 即可    PS :传送门 不必重复使用 #include <iostream> #include < ...

  6. Girl Develop It Chapter Leaders at 2015 Annual Leadership Summit

    Girl Develop It Chapter Leaders at 2015 Annual Leadership Summit Corinne Warnshuis, Executive Direct ...

  7. lua调用C语言

    在上一篇文章(C调用lua函数)中,讲述了如何用c语言调用lua函数,通常,A语言能调用B语言,反过来也是成立的.正如Java 与c语言之间使用JNI来互调,Lua与C也可以互调.   当lua调用c ...

  8. H5 App页面 绝对定位 软键盘弹出时顶起底部按钮

    做H5 App页面时,有时候,按钮可能会放到页面的最底下,这个时候可能会用到绝对定位(position: absolute),但是,当input 输入框被点击时,弹出的软键盘会顶起底部的按钮,就像这样 ...

  9. LED的串联电阻值的计算

    与LED串联的电阻被用于控制该LED导通时的电流量.为了计算电阻值,你需要知道输入电源电压(Vs,一般为5V),LED的正向电压(Vf)和你需要流过LED的电源(/)的数值. 其电阻欧姆值的计算公式( ...

  10. springmvc框架下ajax请求传参数中文乱码解决

    springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...