[java] view plaincopy
- 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();
- }
- }
- }
时间: 2024-10-06 01:28:19