Android 如何 发送图片到webservice中

caiyunl 2010-08-05 06:55:26
我的webservice那边的接受代码是
[WebMethod]
public bool PutImage(byte[] ImgIn)
{
System.IO.MemoryStream ms =
new System.IO.MemoryStream(ImgIn);
System.Drawing.Bitmap b =
(System.Drawing.Bitmap)Image.FromStream(ms);

b.Save("C:\\1.png",
System.Drawing.Imaging.ImageFormat.Png);

return true;
}

然后android那边的链接代码是


private static final String NAMESPACE = "http://tempuri.org/";
private static String URL = "http://192.168.0.32:8081";
private static final String METHOD_NAME = "PutImage";
private static String SOAP_ACTION = "http://tempuri.org/PutImage";



in = new FileInputStream("/sdcard/logo.jpg");
buf = new BufferedInputStream(in,1070); //??? 1070 what for
System.out.println("1..........." + buf);
byte[] bMapArray = new byte[buf.available()];
buf.read(bMapArray);
System.out.println("2..........." + buf.read(bMapArray));
Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray,0,bMapArray.length);
iv.setImageBitmap(bMap);
in.close();


SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
rpc.addProperty("ImgIn",Base64.decode(bMapArray,Base64.DEFAULT));

AndroidHttpTransport ht = new AndroidHttpTransport(URL);
ht.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);

//1
ht.call(SOAP_ACTION,envelope);
//2
SoapObject result = (SoapObject) envelope.bodyIn;

String ret = result.getProperty("PutImageResult").toString();

if(ret.equals("true"))
{
Toast.makeText(this, "发送成功", Toast.LENGTH_LONG).show();
}
else
{

}

这个程序的目的是将手机上的图片上传到服务器中,并且保存在服务器上,可是每次运行到//1处就会出现异常,
请问一下,有什么方法 我自已觉得是rpc.addProperty("ImgIn",Base64.decode(bMapArray,Base64.DEFAULT))
这里问题 ,可是却不知道怎么改。我看过在soap1.1中接受的字段类型是 Base64Binary...
....或者有什么其他好的办法 只要实现这个功能就可以。。。
3Q~~~~
...全文
1168 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meng_qing_shan 2011-06-21
  • 打赏
  • 举报
回复
你好 你怎么解决的问题啊?能告诉我吗
sks56 2010-09-05
  • 打赏
  • 举报
回复
虽然已经结贴了,但是多谢你的代码。
http://iharder.sourceforge.net/current/java/base64/
这里有一个公开的类实现base64的编码解码,我换上以后测试成功。多谢。
纠结的木棉花 2010-08-06
  • 打赏
  • 举报
回复
HttpURLConnection.getOutputStream取得DataOutputStream
明缘 2010-08-06
  • 打赏
  • 举报
回复
help you up..........
caiyunl 2010-08-06
  • 打赏
  • 举报
回复
自己顶一下。。。。没人能帮忙一下嘛

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧