/**
* 启动线程向服务器post提交数据
*/
public void upLoadPic(final Intent data) { ToastUtils.toastWithMessage(getActivity(), "正在上传...");
new Thread(new Runnable() { @Override
public void run() {
httpClient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(PATH_STRING); // 添加内容体,图片,以及文本两部分
MultipartEntity mpEntity = new MultipartEntity();
ContentBody imgFile = new FileBody(tempFile, "image/*");
// 内容体中的id
if (map != null && !map.isEmpty()) {
for (Map.Entry<String, String> entry : map.entrySet()) {
try {
mpEntity.addPart(entry.getKey(), new StringBody(
entry.getValue()));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
// 图片部分
mpEntity.addPart("img", imgFile); httppost.setEntity(mpEntity); System.out.println("executing request "
+ httppost.getRequestLine());
HttpResponse response;
try {
response = httpClient.execute(httppost); if (response.getStatusLine().getStatusCode() == 200) { HttpEntity resEntity = response.getEntity();
// 得到json结果,解析
String result = EntityUtils.toString(resEntity,
HTTP.UTF_8); JSONObject jsonObject = new JSONObject(result); JSONObject dataObject = jsonObject
.getJSONObject("data"); int result_code = dataObject.getInt("result"); if (result_code == 0) {
storePicExternal(data, AVATAR_IMAGE_FILE_NAME);
tempFile.delete();
} Message message = Message.obtain();
message.what = MSG_PIC;
message.obj = result_code;
handler.sendMessage(message); System.out.println(response.getStatusLine());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} }
}).start(); }

-------------

提交文本信息:

/**
* 启动线程向服务器post提交数据
*/
public void updateInfo() {
ToastUtils.toastWithMessage(getActivity(), "正在提交.."); list.add(new BasicNameValuePair("id", userId)); String location = getActivity().getSharedPreferences("data",
Context.MODE_PRIVATE).getString("location", null);
if (location != null) {
list.add(new BasicNameValuePair("location", location));
}
String name = getActivity().getSharedPreferences("data",
Context.MODE_PRIVATE).getString("userName", null);
if (name != null) {
list.add(new BasicNameValuePair("name", name));
} list.add(new BasicNameValuePair("sign", sign.getText().toString()
.trim())); new Thread(new Runnable() { @Override
public void run() { HttpClient httpClient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(UPDATE_PATH); System.out.println("executing request "
+ httppost.getRequestLine());
HttpResponse response;
try {
httppost.setEntity(new UrlEncodedFormEntity(list,
HTTP.UTF_8));
response = httpClient.execute(httppost); if (response.getStatusLine().getStatusCode() == 200) { HttpEntity resEntity = response.getEntity();
// 得到json结果,解析
String result = EntityUtils.toString(resEntity,
HTTP.UTF_8); JSONObject jsonObject = new JSONObject(result); JSONObject dataObject = jsonObject
.getJSONObject("data"); int result_code = dataObject.getInt("result"); Message message = Message.obtain();
message.what = MSG_INFO;
message.obj = result_code;
handler.sendMessage(message); System.out.println(response.getStatusLine());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
} }
}).start();
}

---------------------

提交信息的结果需要由服务器端返回一些信息,此次返回的信息为:1,提交失败;0,提交成功。

json数据格式

Android使用Apache的httpmime包post提交数据的更多相关文章

  1. Android HttpClient框架get和post方式提交数据(非原创)

    1.fragment_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android& ...

  2. Android 采用HttpClient提交数据到服务器

    在前几篇文章中<Android 采用get方式提交数据到服务器><Android 采用post方式提交数据到服务器>介绍了android的两种提交数据到服务器的方法 本文继续介 ...

  3. Android(java)学习笔记211:采用httpclient提交数据(qq登录案例)

    1.Apache -Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包 ...

  4. Android(java)学习笔记213:开源框架post和get方式提交数据(qq登录案例)

    1.前面提到Http的get/post方式  . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2.Android应用会经常使用http协议进行传输,网上会有很完善 ...

  5. Android(java)学习笔记154:采用HttpClient提交数据(qq登录案例)

    1.Apache -Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包 ...

  6. Android(java)学习笔记156:开源框架post和get方式提交数据(qq登录案例)

    1. 前面提到Http的get/post方式  . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2. Android应用会经常使用http协议进行传输,网上会有很 ...

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

    首先搭建模拟web 服务器,新建动态web项目,servlet代码如下: package com.wuyudong.web; import java.io.IOException; import ja ...

  8. Android(java)学习笔记210:采用post请求提交数据到服务器(qq登录案例)

    1.POST请求:  数据是以流的方式写给服务器 优点:(1)比较安全 (2)长度不限制 缺点:编写代码比较麻烦   2.我们首先在电脑模拟下POST请求访问服务器的场景: 我们修改之前编写的logi ...

  9. Android(java)学习笔记209:采用get请求提交数据到服务器(qq登录案例)

    1.GET请求:    组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题)  (2)长度有限不能超过4K(h ...

随机推荐

  1. replace()随笔

    今天在读jquery源码时,发现一个以前自己不曾注意过得问题,就是replece()的第二个参数为函数时的问题,以前只是知道replace()的第二个参数可以为函数,但是不知道该怎么操作,今天看到源码 ...

  2. jQuery动态操作表单

    <html> <head> <title>jquery表格操作</title> <script language="javascript ...

  3. HDU 2076 夹角有多大(题目已修改,注意读题)

    Problem Description 时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少.现在xhd知道的只有时间,请你帮他算出 ...

  4. The Event System

    The Event System 在Qt中,事件是继承了虚拟类QEvent的对象,它代表了程序所发生的事情或者程序需要知道的一个外部活动的结果.事件可以被任意 QObject子类的实例接收和处理,是与 ...

  5. WPF 自定义数字文本框:NumericBox

    由于项目需要,最近写了一个数字输入文本框,在此作个备忘. 1.代码调用 <controls:NumericBox Height="32" Width="80&quo ...

  6. python基础语言以及if/while语句结构

    接下来学会了变量:用简单的变量来代替复杂的字符串 变量首字母不能是数字或者特殊符号~!@#¥等. 字符集的发展: ASCII 255个 1个占1bytes------>1980年 GB2312 ...

  7. LaTeX入门教程(二)

    LaTeX(LATEX,音译"拉泰赫")是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用 ...

  8. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  9. Asio C++ Library,libuv - Cross-platform asynchronous I/O

    http://think-async.com/ http://libuv.org/ https://github.com/libuv/libuv

  10. hdu1041

    #include <iostream> #include <string> using namespace std; const int SIZE = 1001; const ...