下传图片到服务器有关问题(.net 写的WebService)下传后的base64 解析不了
上传图片到服务器问题(.net 写的WebService)上传后的base64 解析不了
要做一个上传头像的功能,主要想法是通过将图片转成base64 提交到.net 的WebService 然后在服务器解析保存,但是出错了
错误是
SoapFault - faultcode: 'soap:Server' faultstring: 'System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Runtime.Serialization.SerializationException: 输入流是无效的二进制格式。开始内容(以字节为单位)是: FF-D8-FF-E0-00-10-4A-46-49-46-00-01-01-00-00-01-00...
android 客户端主要代码:
要做一个上传头像的功能,主要想法是通过将图片转成base64 提交到.net 的WebService 然后在服务器解析保存,但是出错了
错误是
SoapFault - faultcode: 'soap:Server' faultstring: 'System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Runtime.Serialization.SerializationException: 输入流是无效的二进制格式。开始内容(以字节为单位)是: FF-D8-FF-E0-00-10-4A-46-49-46-00-01-01-00-00-01-00...
android 客户端主要代码:
public String upload(String fileName, String imageBuffer){
String nameSpace = "http://tempuri.org/";
String methodName = "UploadPhoto";
String soapAction = "http://tempuri.org/UploadPhoto";
String url = "http://192.168.0.102:8007/androidapi/user/uploadfilesservice.asmx";//后面加不加那个?wsdl参数影响都不大
//建树webservice连接对象
org.ksoap2.transport.HttpTransportSE transport = new HttpTransportSE(url);
transport.debug = true;//是否是调试模式
//设置连接参数
SoapObject soapObject = new SoapObject(nameSpace,methodName);
soapObject.addProperty("fileName", fileName); //参数1 图片名
soapObject.addProperty("imageBuffer", imageBuffer); //参数2 图片字符串
//soapObject.addProperty(pi);//将自定参数参加恳求对象中
//设置返回参数
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);//soap和谈版本必须用SoapEnvelope.VER11(Soap V1.1)
envelope.dotNet = true;//重视:这个属性是对dotnetwebservice和谈的支撑,若是dotnet的webservice 不指定rpc体式格式则用true不然要用false
envelope.bodyOut = transport;
envelope.setOutputSoapObject(soapObject);//设置恳求参数
//nvelope.addMapping(nameSpace,"User",user.getClass());//传对象时必须,参数namespace是webservice中指定的, name是办事器类型的名称, claszz是自定义类的类型
try {
transport.call(soapAction, envelope);
//SoapObject sb = (SoapObject)envelope.bodyIn;//办事器返回的对象存在envelope的bodyIn中
Object result = envelope.getResponse();
// User us= (User)envelope.getResponse();//直接将返回值强迫转换为已知对象
// return us.getName() + us.getAge();
if(result!= null)
{
System.out.println("result---->"+result.toString());
}
else
{
System.out.println("result---->null");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(Exception ex){