webservice传值并返回结果求教

appo_li 2020-07-20 03:49:53
代码一实例化:

public class Material_in
{
public string mtrl_prod_id { get; set; }
public string mtrl_prod_dsc { get; set; }
public string mtrl_cate { get; set; }
public string mtrl_erp_code { get; set; }
public string mtrl_unit { get; set; }
public string min_safe_qty { get; set; }
public string max_safe_qty { get; set; }
public string rtn_code { get; set; }
//此项为返回值
public string rtn_mesg { get; set; }
//此项为返回值
}

代码二 webservice调用方法:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetMaterial_in() {
string sql = "SELECT TOP 2 FNumber,FName,'HH无此定义' dalei,FModel,FUnitID,FQtyMin,FQtyMax FROM dbo.t_ICItem";
DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnection(),CommandType.Text,sql).Tables[0];
int 行数 = dt.Rows.Count;
Material_in[] 序列化内容=null;
if (行数 > 0) {
序列化内容 = new Material_in[行数];
}
int i = 0;
foreach (DataRow dr in dt.Rows)
{
序列化内容[i] = new Material_in();
Console.WriteLine(dr["FNumber"].ToString());
序列化内容[i].mtrl_prod_id = dr["FNumber"].ToString();
序列化内容[i].mtrl_prod_dsc = dr["FName"].ToString();
序列化内容[i].mtrl_cate = dr["dalei"].ToString();
序列化内容[i].mtrl_erp_code = dr["FModel"].ToString();
序列化内容[i].mtrl_unit = dr["FUnitID"].ToString();
序列化内容[i].min_safe_qty = dr["FQtyMin"].ToString();
序列化内容[i].max_safe_qty = dr["FQtyMax"].ToString();
i++;
}
return new JavaScriptSerializer().Serialize(序列化内容);
}

代码三,调用方法结果测试:

HHMESWEBSERVICE.HHMESWEBSERVICESoapClient HHMES= new HHMESWEBSERVICE.HHMESWEBSERVICESoapClient("HHMESWEBSERVICESoap");
string json = JsonConvert.SerializeObject(HHMES.GetMaterial_in());
MessageBox.Show(json);
JArray ja = (JArray)JsonConvert.DeserializeObject(HHMES.GetMaterial_in());
foreach (JObject item in ja)
{
MessageBox.Show(item["mtrl_prod_id"].ToString());
MessageBox.Show(item["mtrl_prod_dsc"].ToString());
}

结果:
以上处理后,能够完整调用接口,并输出相应的值
问题:
实例化中的:rtn_code 和rtn_mesg 需要给予一个返回值
这个如何写?
最多只能给400分了,分不够可以另开贴再加
望指教
...全文
2293 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
appo_li 2020-07-23
  • 打赏
  • 举报
回复
引用 5 楼 正怒月神 的回复:
[quote=引用 4 楼 appo_li 的回复:][quote=引用 3 楼 正怒月神 的回复:][quote=引用 2 楼 appo_li 的回复:][quote=引用 1 楼 正怒月神 的回复:]看起来这个rtn_code 是返回值, 应该类似于httpStatus的枚举,成功是200,失败是具体的比如505等等。。。。。 rtn_mesg 可能是success或者fail 但是我想说,这个应该是不需要程序员关心的。 默认应该抽出来rtn_code 是200 rtn_mesg 是success。 然后全局有一个异常处理,去根据异常去重置rtn_code 和rtn_mesg 的状态。 而不是放到返回结果里,作为结果的一部分。这个有点蛋疼。
额,怎么都行 刚接触这东西 拼拼凑凑勉强搞出这么个东西 就按照您说的重置这两个状态给接口 这个如何写? 可以转换逻辑为传输接口中的数据,调用后,给出一个调用成功或者失败的返回值让接口知道 我实在没思路 或者帮我全部改掉都行...[/quote] 你百度一下webservice的全局异常如何处理。 在全局的方法里,返回这个ret_code和msg[/quote] 突然想明白了 我try catch返回一个json字符串不就行了....[/quote] 这样是可以,但是你每个接口都要加,稍显麻烦。[/quote] 是的,还好量不大 也就20个左右的接口 前两天已经搞完了
正怒月神 2020-07-21
  • 打赏
  • 举报
回复
引用 4 楼 appo_li 的回复:
[quote=引用 3 楼 正怒月神 的回复:][quote=引用 2 楼 appo_li 的回复:][quote=引用 1 楼 正怒月神 的回复:]看起来这个rtn_code 是返回值, 应该类似于httpStatus的枚举,成功是200,失败是具体的比如505等等。。。。。 rtn_mesg 可能是success或者fail 但是我想说,这个应该是不需要程序员关心的。 默认应该抽出来rtn_code 是200 rtn_mesg 是success。 然后全局有一个异常处理,去根据异常去重置rtn_code 和rtn_mesg 的状态。 而不是放到返回结果里,作为结果的一部分。这个有点蛋疼。
额,怎么都行 刚接触这东西 拼拼凑凑勉强搞出这么个东西 就按照您说的重置这两个状态给接口 这个如何写? 可以转换逻辑为传输接口中的数据,调用后,给出一个调用成功或者失败的返回值让接口知道 我实在没思路 或者帮我全部改掉都行...[/quote] 你百度一下webservice的全局异常如何处理。 在全局的方法里,返回这个ret_code和msg[/quote] 突然想明白了 我try catch返回一个json字符串不就行了....[/quote] 这样是可以,但是你每个接口都要加,稍显麻烦。
appo_li 2020-07-21
  • 打赏
  • 举报
回复
引用 3 楼 正怒月神 的回复:
[quote=引用 2 楼 appo_li 的回复:][quote=引用 1 楼 正怒月神 的回复:]看起来这个rtn_code 是返回值, 应该类似于httpStatus的枚举,成功是200,失败是具体的比如505等等。。。。。 rtn_mesg 可能是success或者fail 但是我想说,这个应该是不需要程序员关心的。 默认应该抽出来rtn_code 是200 rtn_mesg 是success。 然后全局有一个异常处理,去根据异常去重置rtn_code 和rtn_mesg 的状态。 而不是放到返回结果里,作为结果的一部分。这个有点蛋疼。
额,怎么都行 刚接触这东西 拼拼凑凑勉强搞出这么个东西 就按照您说的重置这两个状态给接口 这个如何写? 可以转换逻辑为传输接口中的数据,调用后,给出一个调用成功或者失败的返回值让接口知道 我实在没思路 或者帮我全部改掉都行...[/quote] 你百度一下webservice的全局异常如何处理。 在全局的方法里,返回这个ret_code和msg[/quote] 突然想明白了 我try catch返回一个json字符串不就行了....
正怒月神 2020-07-20
  • 打赏
  • 举报
回复
引用 2 楼 appo_li 的回复:
[quote=引用 1 楼 正怒月神 的回复:]看起来这个rtn_code 是返回值, 应该类似于httpStatus的枚举,成功是200,失败是具体的比如505等等。。。。。 rtn_mesg 可能是success或者fail 但是我想说,这个应该是不需要程序员关心的。 默认应该抽出来rtn_code 是200 rtn_mesg 是success。 然后全局有一个异常处理,去根据异常去重置rtn_code 和rtn_mesg 的状态。 而不是放到返回结果里,作为结果的一部分。这个有点蛋疼。
额,怎么都行 刚接触这东西 拼拼凑凑勉强搞出这么个东西 就按照您说的重置这两个状态给接口 这个如何写? 可以转换逻辑为传输接口中的数据,调用后,给出一个调用成功或者失败的返回值让接口知道 我实在没思路 或者帮我全部改掉都行...[/quote] 你百度一下webservice的全局异常如何处理。 在全局的方法里,返回这个ret_code和msg
appo_li 2020-07-20
  • 打赏
  • 举报
回复
引用 1 楼 正怒月神 的回复:
看起来这个rtn_code 是返回值, 应该类似于httpStatus的枚举,成功是200,失败是具体的比如505等等。。。。。 rtn_mesg 可能是success或者fail 但是我想说,这个应该是不需要程序员关心的。 默认应该抽出来rtn_code 是200 rtn_mesg 是success。 然后全局有一个异常处理,去根据异常去重置rtn_code 和rtn_mesg 的状态。 而不是放到返回结果里,作为结果的一部分。这个有点蛋疼。
额,怎么都行 刚接触这东西 拼拼凑凑勉强搞出这么个东西 就按照您说的重置这两个状态给接口 这个如何写? 可以转换逻辑为传输接口中的数据,调用后,给出一个调用成功或者失败的返回值让接口知道 我实在没思路 或者帮我全部改掉都行...
正怒月神 2020-07-20
  • 打赏
  • 举报
回复
看起来这个rtn_code 是返回值, 应该类似于httpStatus的枚举,成功是200,失败是具体的比如505等等。。。。。 rtn_mesg 可能是success或者fail 但是我想说,这个应该是不需要程序员关心的。 默认应该抽出来rtn_code 是200 rtn_mesg 是success。 然后全局有一个异常处理,去根据异常去重置rtn_code 和rtn_mesg 的状态。 而不是放到返回结果里,作为结果的一部分。这个有点蛋疼。

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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