`
umbrellall1
  • 浏览: 147074 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

android WebSerivce 带图片上传测试代码

阅读更多

package test;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.kxml2.kdom.Element;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Test {
	/**
	 * @param args
	 */
	@SuppressWarnings("restriction")
	public static void main(String[] args)throws Exception {
		//里面地址对应上面图片的namespace  
		 SoapObject request = new SoapObject("http://webservice.wzkj.com/", "addTravelLog"); 
		 String uploadBuffer = null;
		   try{  
	            FileInputStream fis = new FileInputStream("d:\\1.jpg");  
	            ByteArrayOutputStream baos = new ByteArrayOutputStream();  
	            byte[] buffer = new byte[1024];  
	            int count = 0;  
	            while((count = fis.read(buffer)) >= 0){  
	                baos.write(buffer, 0, count);  
	            }  
	            uploadBuffer = (new BASE64Encoder()).encode(baos.toByteArray());  //进行Base64编码  
	           
	            fis.close();  
	        }catch(Exception e){  
	            e.printStackTrace();  
	        }  
		//这个是配置参数  
		        request.addProperty("userId","1");  
				request.addProperty("logType","1");  
				request.addProperty("shareId",0);  
				request.addProperty("content"," 我发表了一批日志");
				request.addProperty("location","成都");
				request.addProperty("longitude"," 10.254584");
				request.addProperty("latitude"," 10.254584");
				request.addProperty("title","如何5杀");
				request.addProperty("logImg",uploadBuffer);
				
				
		          SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);  
		          Element[] header = new Element[1]; 
		          header[0] = new Element().createElement("http://webservice.wzkj.com/","hello"); 
		          header[0].setAttribute("http://webservice.wzkj.com/","token","e4rllW/nR6gRuoY/iDx3S7NjghAeQLmyCdMJ5pxDj+OnJOF2g4CxjK98SYgdgLI/itiasGlRAXcKhRzL+G8pzN44/jQDDUr/aT/tnqFxFGBaZ3PKhON9pyzIM7Y4EGYEpLmVKrkRzYDN4PMxT4Plbz04vSRxMiMhuexkgni1SX0=");   
		          
		          envelope.headerOut=header; 
		          envelope.bodyOut = request;
		          envelope.setOutputSoapObject(request); 
		          // 设置是否调用的是dotNet开发的WebService  
		          envelope.dotNet = false;
		          try {  
		//对应图片上的soap:address   
		              HttpTransportSE androidHttpTransport = new HttpTransportSE("http://127.0.0.1:8080/wzkj/webservice/friends");  
		//call的第一个参数对应图片上的soapAction=""  
		              androidHttpTransport.call("", envelope);  
		              SoapObject result = (SoapObject)envelope.bodyIn;  
		//这里我获取第一个数据  
		              System.out.println(result.getProperty(0).toString());  
		          } catch (Exception e) {  
		              e.printStackTrace();  
		          }  
	}
	
}



简单例子

 String uploadBuffer = null;  
         try{    
              FileInputStream fis = new FileInputStream("d:\\1.jpg");    
              ByteArrayOutputStream baos = new ByteArrayOutputStream();    
              byte[] buffer = new byte[1024];    
              int count = 0;    
              while((count = fis.read(buffer)) >= 0){    
                  baos.write(buffer, 0, count);    
              }    
              uploadBuffer = (new BASE64Encoder()).encode(baos.toByteArray());  //进行Base64编码    
               
              fis.close();    
              System.out.println(uploadBuffer);
              
              BASE64Decoder decoder = new BASE64Decoder(); 
              byte[] b = decoder.decodeBuffer(uploadBuffer);  
              for(int i=0;i<b.length;++i)  
              {  
                  if(b[i]<0)  
                  {//调整异常数据  
                      b[i]+=256;  
                  }  
              }  
              //生成jpeg图片  
              String imgFilePath = "d://222.jpg";//新生成的图片  
              OutputStream out = new FileOutputStream(imgFilePath);      
              out.write(b);  
              out.flush();  
              out.close();  
              
          }catch(Exception e){    
              e.printStackTrace();    
          }    

分享到:
评论

相关推荐

    Android 在Android远程上传以及下载图片---XFire框架-IT计算机-毕业设计.zip

    在Android平台上进行远程图片的上传和下载是移动应用开发中常见的功能需求,尤其是在社交媒体、电商应用等场景下。本项目以“Android在Android远程上传以及下载图片---XFire框架”为主题,提供了一个Android应用源码...

    安卓文件下载上传解压相关-Android上传文件到.net服务器服务器使用webservice.rar

    在Android平台上进行文件的下载、上传以及解压是移动应用开发中的常见操作。在这个场景中,我们关注的是如何从Android设备向一个运行.NET服务的服务器上传文件,以及服务器端如何处理这些文件。以下是对这个主题的...

    android WebService访问

    本项目基于Eclipse IDE,实现了Android手机程序对Web Service的调用,具体包括拍照功能、图片上传以及XML处理和base64编码解码技术。 1. **Android拍照功能**: 在Android平台上,我们可以使用`Camera`类来实现...

    Android ksoap调用webservice批量上传多张图片详解

    Android KSOAP调用WebService批量上传多张图片是一个常见的任务,特别是在移动应用开发中。这篇文章将详细解释如何在Android中利用KSOAP库与WebService交互,实现批量上传图片到服务器。 首先,KSOAP是Android中...

    Android 4.0 网络编程详解代码(共7个项目)

    6. **第6章:Android中的网络数据上传及WebService调用** - MultipartEntity或RequestBody用于文件上传。 - SOAP或RESTful方式调用Web服务,处理WS安全认证。 - JSON-RPC或XML-RPC的使用,与服务器进行远程方法...

    利用webservice编写的简易QQ

    7. **文件名称列表解析**:“MyQQ”可能是项目源代码的主目录,包含了整个应用的源码文件,如服务器端的服务接口实现、数据库连接代码、客户端的网络请求代码以及UI界面的布局文件等。 总的来说,这个项目为初学者...

    android网络编程详解源码(1至7章)

    5. **第6章:Android中的网络数据上传及WebService调用** - POST和PUT方法上传数据到服务器,处理文件上传和表单数据。 - SOAP协议的理解,以及如何在Android中调用SOAP WebService。 - RESTful API的使用,发送...

    传智播客的android开发源代码

    04_开发与运行(卸载)第一个ANDROID应用.avi 所在项目:Hello 06_电话拔号器.avi 所在项目:phone 08_短信发送器.avi 所在项目:sms 09_深入了解各种布局技术.avi 所在项目:sms & FrameLayout 10_对应用进行单元...

    webservice_gps_点计算面积

    在压缩包“workspace1”中,可能包含了实现这一功能的相关代码、配置文件和测试数据。代码可能涉及了Web服务的客户端和服务端开发,使用了如Java、Python或.NET等编程语言,以及可能的GIS库,如GDAL、geopandas或JTS...

    安卓网站交互JSONxmlWebserviceUPnP相关-运行闪退Android网络监控监控Http速度扫描Rssiping实现Ftp实现.rar

    4. NetMonitor:这是一个可能的Android应用项目名称,包含实际的代码文件,用于实现上述网络监控功能。 总之,这个压缩包包含了一个Android应用的源码,该应用可能用于网络监控,具备了HTTP速度测试、RSSI扫描、...

    黎活明android教程的全程PPT

    第二天 1&gt; 单元测试 2&gt; 查看与输出日志信息 3&gt; 文件操作 4&gt; 往SDCard读写文件 5&gt; XML解析(SAX/DOM/PULL),写xml文件 6&gt; SharedPreferences 第三天 1&gt; SQLite数据库添删改查操作 A.创建数据库 B....

    传智播客Android视频教程-课程源码.rar

    项目名称 Android手机视频客户端:本系统专为视频网站与电视媒体而开发的手机视频客户端,通过该软件,手机用户可以在线观看视频,在线播放MP3,上传视频,下载视频,视频搜索,视频共享、了解最新最热视频资讯。...

    8天快速掌握Android教程源码

    视频名称 源码 ----------------------...复杂UI界面设计、GPS与GoogleMap、自定义View、Ubuntu Linux下使用C语言面向底层开发、通过JNI进行底层组件调用、图形与OpenGl ES、界面特效、下载修改及编绎Android框架代码。

    rancherita:消耗WebService

    "rancherita-master"可能表示项目已上传到Git仓库,且master分支代表主分支,是最稳定的代码版本。 通过学习和分析Rancherita项目,开发者可以加深对Java Web服务消费、前端交互设计以及现代软件开发流程的理解。...

    source.zip

    视频名称 源码 ----------------------...复杂UI界面设计、GPS与GoogleMap、自定义View、Ubuntu Linux下使用C语言面向底层开发、通过JNI进行底层组件调用、图形与OpenGl ES、界面特效、下载修改及编绎Android框架代码。

Global site tag (gtag.js) - Google Analytics