andriod 如何调用 c#的webservices 上传集合类???c#端:public class UpdateFileInfo
{
/// <summary>
/// 文件名
/// </summary>
public string FileName;
/// <summary>
/// 版本号
/// </summary>
public string Version;
} /// <summary>
///
/// </summary>
/// <param name="fileInfo"></param>
/// <returns></returns>
[WebMethod]
[SoapRpcMethod]
public bool SetUpdateFileInfo(UpdateFileInfo fileInfo)
{
....
return true;
}/// <summary>
///
/// </summary>
/// <param name="fileInfo"></param>
/// <returns></returns>
[WebMethod]
[SoapRpcMethod]
public bool SetUpdateFilesInfo(UpdateFileInfo[] filesInfo)
{
...........
return true;
}
Android端:如果传递单个UpdateFileInfo如下可以实现:public void SetUpdateFileInfo() {
try {
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
updateFileInfo file = new updateFileInfo();
file.setProperty(0, "测试");
file.setProperty(1, "123");
PropertyInfo pi = new PropertyInfo();
pi.setName("fileInfo");
pi.setValue(file);
pi.setType(file.getClass());
rpc.addProperty(pi);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = false;
envelope.setOutputSoapObject(rpc);
envelope.addMapping(NAMESPACE, "UpdateFileInfo", file.getClass());
HttpTransportSE ht = new HttpTransportSE(URL); ht.debug = true; ht.call(SOAP_ACTION, envelope);
Object object = envelope.getResponse(); Toast.makeText(this, object.toString(), Toast.LENGTH_LONG).show(); return;
} catch (Exception e) {
e.printStackTrace();
}
}如果需要传递的是UpdateFileInfo数组,该如何实现呢?谢谢!
{
/// <summary>
/// 文件名
/// </summary>
public string FileName;
/// <summary>
/// 版本号
/// </summary>
public string Version;
} /// <summary>
///
/// </summary>
/// <param name="fileInfo"></param>
/// <returns></returns>
[WebMethod]
[SoapRpcMethod]
public bool SetUpdateFileInfo(UpdateFileInfo fileInfo)
{
....
return true;
}/// <summary>
///
/// </summary>
/// <param name="fileInfo"></param>
/// <returns></returns>
[WebMethod]
[SoapRpcMethod]
public bool SetUpdateFilesInfo(UpdateFileInfo[] filesInfo)
{
...........
return true;
}
Android端:如果传递单个UpdateFileInfo如下可以实现:public void SetUpdateFileInfo() {
try {
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
updateFileInfo file = new updateFileInfo();
file.setProperty(0, "测试");
file.setProperty(1, "123");
PropertyInfo pi = new PropertyInfo();
pi.setName("fileInfo");
pi.setValue(file);
pi.setType(file.getClass());
rpc.addProperty(pi);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = false;
envelope.setOutputSoapObject(rpc);
envelope.addMapping(NAMESPACE, "UpdateFileInfo", file.getClass());
HttpTransportSE ht = new HttpTransportSE(URL); ht.debug = true; ht.call(SOAP_ACTION, envelope);
Object object = envelope.getResponse(); Toast.makeText(this, object.toString(), Toast.LENGTH_LONG).show(); return;
} catch (Exception e) {
e.printStackTrace();
}
}如果需要传递的是UpdateFileInfo数组,该如何实现呢?谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货