package com.home.upload; import java.io.File; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.util.EntityUtils; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener { private Button uploadBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); uploadBtn = (Button) findViewById(R.id.main_btn); uploadBtn.setOnClickListener(this); } @Override public void onClick(View v) { if (v == uploadBtn) { final List<String> list = new ArrayList<String>(); list.add("/storage/sdcard0/updateAdtech/orgpic/1.png"); list.add("/storage/sdcard0/updateAdtech/orgpic/2.png"); new Thread() { public void run() { postMethod("just test", "sdcard/image/a.amr", list); }; }.start(); } } /** * * @Description: 上传方法 * * @param audioPath * 上传音频文件地址 例:sdcard/image/a.amr * * @param text * 上传文本的值 * * @param imageUrlList * 图片地址的集合 例:sdcard/image/a.jpg, sdcard/image/b.jpg * * @return void */ private synchronized void postMethod(String text, String audioPath, List<String> imageUrlList) { try { String[] filePath = new String[imageUrlList.size()]; int size = imageUrlList.size(); for (int i = 0; i < size; i++) { filePath[i] = imageUrlList.get(i); } // 链接超时,请求超时设置 BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 10 * 1000); HttpConnectionParams.setSoTimeout(httpParams, 10 * 1000); // 请求参数设置 HttpClient client = new DefaultHttpClient(httpParams); HttpPost post = new HttpPost( "http://service.ireadhome.com/api/Upload/Image"); MultipartEntity entity = new MultipartEntity(); // 上传 文本, 转换编码为utf-8 其中"text" 为字段名, // 后边new StringBody(text, // Charset.forName(CHARSET))为参数值,其实就是正常的值转换成utf-8的编码格式 entity.addPart("text", new StringBody(text, Charset.forName("UTF-8"))); // 上传多个文本可以在此处添加上边代码,修改字段和值即可 // 上传音频文件 entity.addPart("audio", new FileBody(new File(audioPath), "audio/*")); // 上传图片 for (String p : filePath) { entity.addPart("fileimg", new FileBody(new File(p), "image/*")); } post.setEntity(entity); HttpResponse resp = client.execute(post); // 获取回调值 System.out.println("Response:" + EntityUtils.toString(resp.getEntity())); System.out.println("StatusCode:" + resp.getStatusLine().getStatusCode()); } catch (Exception e) { e.printStackTrace(); } } }