急急急,关于android调用net webservice的问题,在线等
1、net的webservice代码
[WebService(Namespace = "http://iscan.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class IScanConn : System.Web.Services.WebService
{
public MySoapHeader myheader = new MySoapHeader();
public JSONHelper jsonHelper = new JSONHelper();
//[SoapHeader("myheader")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//返回json
[WebMethod(Description = "登录系统", EnableSession = true), SoapRpcMethod(Use = System.Web.Services.Description.SoapBindingUse.Literal)]
public string Login(string username, string userpassword)
{
logGet(username);
logGet(userpassword);
A040X10YGJBXXDAO dao = null;
string msg = "";
//验证是否有权访问
//if (!myheader.isValid(out msg))
//{
// logGet(msg);
// dao.B030dlmcXX = msg;
//}
//else
//{
A040X10YGJBXXBLL ygbll = new A040X10YGJBXXBLL();
bool b = ygbll.CheckPassword(username, userpassword);
if (b)
{
int id = ygbll.GetIdA040X10YGJBXX(username);
dao = ygbll.GetModel(Convert.ToInt64(id));
}
//}
List<A040X10YGJBXXDAO> listDao = new List<A040X10YGJBXXDAO>();
listDao.Add(dao);
logGet("end");
msg = jsonHelper.GetJson<List<A040X10YGJBXXDAO>>(listDao);
logGet(msg);
return msg;
}
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//返回json
[WebMethod(Description = "登录系统1", EnableSession = true), SoapRpcMethod(Use = System.Web.Services.Description.SoapBindingUse.Literal)]
public string Login1()
{
logGet("1");
A040X10YGJBXXDAO dao = null;
A040X10YGJBXXBLL ygbll = new A040X10YGJBXXBLL();
dao = ygbll.GetModel(1);
logGet("end");
List<A040X10YGJBXXDAO> listDao = new List<A040X10YGJBXXDAO>();
listDao.Add(dao);
string msg = jsonHelper.GetJson<List<A040X10YGJBXXDAO>>(listDao);
logGet(msg);
return msg;
}2、android客户端代码
public static String GetMsg(String[] args) {
Log.v(l_tag, "star");
//webservice地址
final String endpoint="http://10.0.2.2:8082/IScanWS/IScanConn.asmx";
// 调用的方法
final String methodName = "Login";
List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
JSONObject json = new JSONObject();
try {
json.put("username", args[0]);
} catch (JSONException e) {
e.printStackTrace();
}
try {
json.put("userpassword", args[1]);
} catch (JSONException e) {
e.printStackTrace();
}
try
{
Log.v(l_tag, "call");
String msg = SoapHelper.GetResponse(methodName, params, endpoint);
Log.v(l_tag, "callback");
if (msg != null)
{
// 获取服务器响应返回的SOAP消息
//JSONArray json_arr = new JSONArray(msg);
//JSONObject json_obj = (JSONObject) json_arr.get(0);
//String id = json_obj.getString("B990sbgjzX")
Log.v(l_tag, msg);
return msg;
}else{
return "Null";
}
}
/*catch (IOException e)
{
e.printStackTrace();
return e.getLocalizedMessage();
}
catch (XmlPullParserException e)
{
e.printStackTrace();
return e.getLocalizedMessage();
} */
catch (Exception e) {
e.printStackTrace();
return e.getLocalizedMessage();
}
}public static String GetResponse(String method,List<BasicNameValuePair> params,String wsurl)
{
try {
String WSUrl=wsurl;
String url = WSUrl;
// 实例化SoapObject对象
SoapObject request = new SoapObject(namespace, method);
if (params.size() > 0){
// 添加请求参数
for(int i=0,len=params.size();i<len;i++){
request.addProperty(params.get(i).getName(),
params.get(i).getValue());
}
}
// 使用SOAP1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
// 设置与.Net提供的Web Service保持较好的兼容性,适用rpc模式设置false
envelope.dotNet = true;
//设置请求参数
envelope.setOutputSoapObject(request);
// 创建HttpTransportSE传输对象
HttpTransportSE androidHttpTransport = new HttpTransportSE(url);
androidHttpTransport.call(namespace + method, envelope);
SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
return result.toString();
} catch (Exception e) {
System.out.println(e.getMessage());
return "Error:调用web services出错!"+e.getMessage();
}
}问题描述:
可以成功访问到我的webservice,没有参数可以得到返回的结果,带参数的情况下,webservice没有接收到终端发来的参数,不知道是什么问题。
附图:androidlog错误日志

附图:终端程序运行到最后就自动停止了

相关推荐
实现HttpURLConnection调用.NET WebService的指南
本文还有配套的精品资源,点击获取 简介:在Android开发中,使用 HttpURLConnection 与.NET平台上的WebService进行交互是一种常见的需求。本文将介绍 HttpURLConnection 的基础知识,解释WebService的工作原理,并通过详细的步骤指导如何通过 HttpURLConnection 发...
29Linux基础命令详解——用户管理.docx
29Linux基础命令详解——用户管理
科技服务机构如何通过数据分析增强服务竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
车辆缺陷分割数据集4000张json格式.zip
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):4000 标注数量(json文件个数):4000 标注类别数:1 标注类别名称:["defect"] 每个类别标注的框数: defect count = 8740 总框数:8740 使用标注工具:labelme=5.5.0 所在仓库:firc-dataset 图片分辨率:640x640 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证


