资源描述:
《android客户端上传文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、前天开始要准备实现手机端往服务器传参数,还要能传附件,找了不少文章和资料,现在总结一下分享分享:代码中的catch什么的就省略了,尝试了图片、txt、xml是没问题的..各位尽情拍砖吧。发完发现代码部分的格式……这个编辑器不太会用,怎么感觉把换行都去掉了,处理好换行缩进也……首先我是写了个java工程测试发送post请求:可以包含文本参数和文件参数****************************************************/***通过http协议提交数据到服务端,实现表单提交功能,包括上传文件*@parama
2、ctionUrl上传路径*@paramparams请求参数key为参数名,value为参数值*@paramfile上传文件*/publicstaticvoidpostMultiParams(StringactionUrl,Mapparams,FormBean[]files){try{PostMethodpost=newPostMethod(actionUrl);ListformParams=newArrayList();for(Map.Entryentry:
3、params.entrySet()){formParams.add(newStringPart(entry.getKey(),entry.getValue()));}if(files!=null)for(FormBeanfile:files){//filename为在服务端接收时希望保存成的文件名,filepath是本地文件路径(包括了源文件名),filebean中就包含了这俩属性formParams.add(newFilePart("file",file.getFilename(),newFile(file.getFilepath()
4、)));}Part[]parts=newPart[formParams.size()];Iteratorpit=formParams.iterator();inti=0;while(pit.hasNext()){parts[i++]=pit.next();}//如果出现乱码可以尝试一下方式//StringPartsp=newStringPart("TEXT","testValue","GB2312"); //FilePartfp=newFilePart("file","test.txt",newFile("./temp/te
5、st.txt"),null,"GB2312"//postMethod.getParams().setContentCharset("GB2312");MultipartRequestEntitymrp=newMultipartRequestEntity(parts,post.getParams());post.setRequestEntity(mrp);//executepostmethodHttpClientclient=newHttpClient();intcode=client.executeMethod(post);System
6、.out.println(code);}catch...}复制代码通过以上代码可以成功的模拟java客户端发送post请求,服务端也能接收并保存文件java端测试的main方法:publicstaticvoidmain(String[]args){StringactionUrl="http://192.168.0.123:8080/WSserver/androidUploadServlet";MapstrParams=newHashMap();strParams.put("pa
7、ramOne","valueOne");strParams.put("paramTwo","valueTwo");FormBean[]files=newFormBean[]{newFormBean("dest1.xml","F:/testpostsrc/main.xml")};HttpTool.postMultiParams(actionUrl,strParams,files);}复制代码本以为大功告成了,结果一移植到android工程中,编译是没有问题的。但是运行时抛了异常先是说找不到PostMethod类,org.apache.co
8、mmons.httpclient.methods.PostMethod这个类绝对是有包含的;还有个异常就是VerifyError。开发中有几次碰到这个异常都束手无策,觉得是SDK不兼容还是怎么地,哪位知道可