webservice篇:其中关于调用外界数据,读取返回数据

1,通过Android中已存取的数据,返回数据(json格式,object类型数据:strJson)

2,业务需求:通过webservice调用外界暴露的数据并将返回来的json数据序列化,读取存入数据库表:【SQ_Event】

TODO:

1,讲解webservice小程序应用

2,json序列化

1,讲解webservice小程序应用

using HMFW.BLL.BaseInfo;
using HMFW.BLL.SQJS.ZJWG;
using HMFW.BLL.UserRoleManage;
using HMFW.Common;
using HMFW.Model;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.SessionState;

namespace HMFW.Web.WebServiceToAndroid
{
    /// <summary>
    /// Event 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
    // [System.Web.Script.Services.ScriptService]
    public class Event : System.Web.Services.WebService, IRequiresSessionState
    {
        private EventBLL iEventBll = new EventBLL();
        UsersBLL usersBll = new UsersBLL();
        sysAreaBLL sAreaBLL = new sysAreaBLL();
        /// <summary>
        /// 事件处理新增
        /// </summary>
        /// <param name="strJson"></param>
        /// <returns></returns>
        [WebMethod]
        public String AddEvent(string strJson)
        {
            string resultJson = string.Empty; //返回结果变量
            AndrewsResultList resultList = new AndrewsResultList();//返回结果类
            SQ_Event model = null;
            try
            {
                model = JsonHelper<SQ_Event>.JsonStringToModel(strJson);
                model.gID = Guid.NewGuid();
                //获取数据录入人真实名称的信息
                sys_Users sys_UsersModel = new sys_Users();
                sys_UsersModel.gUserID = new Guid(model.gCreateUserId.ToString());
                sys_Users sys_UsersR = usersBll.GetModel(sys_UsersModel);
                model.sCreateUserRealname = sys_UsersR.sRealName;
                //获取所在地区名称的信息
                sysArea sysAreamodel = new sysArea();
                sysAreamodel.sID = model.sVillageCode;
                sysArea sysAreaR = sAreaBLL.GetModel(sysAreamodel);
                model.sVillageName = sysAreaR.sName;
                model.iDeleteMark = 0;
                model.iHandleState = 0;
                model.iState = 0;
                model.dCreateDate = DateTime.Now;

                /*************二进制流数据转换成图片******************/
                Bitmap bitmap;
                string[] arraysPicPath = model.sPicPath.Split(',');
                //arraysPicPath = sPicPath.Split(',');//测试数据流数组
                int spicLength = arraysPicPath.Length;//测试数据流长度
                string sImgPath = "";
                if (spicLength >= 2)//添加了图片
                {
                    foreach (String item in arraysPicPath)
                    {
                        if (!string.IsNullOrEmpty(item))//处理最后一个为空
                        {
                            #region 二进制流数据 生成图片
                            //读取:二进制数据流图片生成图片
                            string base64Decode = item;
                            byte[] bt = Convert.FromBase64String(base64Decode);
                            System.IO.MemoryStream stream = new System.IO.MemoryStream(bt);
                            bitmap = new Bitmap(stream);//测试数据流数据生成图片
                            #endregion
                            #region 二进制流数据图片 保存进服务器指定路径
                            //保存图片到指定路径下,采用原有保存格式,/upload/Android/20150107/c360f61b-8230-43d0-bae8-38d479cac802.JPG
                            string pathPrefix = "/upload/Android/";
                            string path = Path.Combine(pathPrefix,
                                                       DateTime.Now.ToString("yyyyMMdd") + "/" + Guid.NewGuid() + ".JPG");//合并2个路径字符串
                            sImgPath += path + ',';//SQ_Event中sImgPath字段采取:逗号隔开方式进行保存多张图片[最多5张图片]
                            string sbst;
                            try
                            {
                                sbst = HttpContext.Current.Server.MapPath(path);
                            }
                            catch
                            {
                                sbst = path;
                            }
                            FileInfo fileInfo = new FileInfo(sbst);
                            if (!fileInfo.Directory.Exists)
                                fileInfo.Directory.Create();
                            bitmap.Save(sbst);
                            #endregion
                        }
                    }
                }
                if (!string.IsNullOrEmpty(sImgPath))
                {
                    #region 第一时间中包含多张图片二进制数据流格式存储的图片以路径格式存储进服务器中
                    sImgPath = sImgPath.Substring(0, sImgPath.Length - 1);//去除最后一个逗号
                    model.sImgPath = sImgPath;//第一时间中包含多张图片二进制数据流格式存储的图片以路径格式存储进服务器中
                }
                #endregion
            }
            catch (Exception e)//如果解析出错,返回相关错误信息
            {
                resultList.sSuccess = "0";
                resultList.sMessage = "参数解析出错!" + e.Message;
                resultJson = JsonHelper<AndrewsResultList>.ModelToJsonString(resultList);
                return resultJson;
            }
            try
            {
                if (iEventBll.Add(model))
                {
                    resultList.sSuccess = "1";
                    resultList.sMessage = "执行成功!";
                    resultJson = JsonHelper<AndrewsResultList>.ModelToJsonString(resultList);//对整个结果集进行序列化
                    return resultJson;
                }
                else
                {
                    resultList.sSuccess = "0";
                    resultList.sMessage = "执行失败!";
                    resultJson = JsonHelper<AndrewsResultList>.ModelToJsonString(resultList);//对整个结果集进行序列化
                    return resultJson;
                }
            }
            catch (Exception e)
            {
                resultList.sSuccess = "0";
                resultList.sMessage = "程序执行出错!" + e.Message;
                resultJson = JsonHelper<AndrewsResultList>.ModelToJsonString(resultList);
                return resultJson;
            }
        }
    }
}

2,json序列化

model = JsonHelper<SQ_Event>.JsonStringToModel(strJson);

TODO:

1,图片略,这主要是使用webservice调用外界数据的一个应用;

实际中,得来的数据都是已经保存入数据库中了。

2,没有什么图片看见了。

时间: 2024-08-07 16:03:09

webservice篇:其中关于调用外界数据,读取返回数据的相关文章

C#调用sap接口及返回数据到sap

public class SapClass { /// <summary> /// /// </summary> /// <param name="fphm">发票号码</param> /// <param name="fprq">发票开票日期</param> /// <param name="fkf">付款方</param> /// <para

Winform开窗,筛选数据后返回数据的方法

在开发中,经常需要打开另一个窗体(简写为"开窗"),然后在开窗中进行数据筛选,选中需要的数据,最后将值传递给本原来的窗体.而且,这个开窗可以重复用于多个地方,其效果如同日历控件的弹出窗口.如下图所示: 测试环境 vs2008 基本思路 1.创建一个窗体类. (1)为该类添加用于传递值的属性. (2)为该类添加一个事件,用于通知调用方值已经准备好. (3)在窗体类的某个函数中,如单元格双击处理函数中,为属性赋值,并引发这个事件. 2.调用该窗体类. (1)定义一个全局的窗体类对象. (2

ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时间格式. 请求Json格式: { "Cmd": "login", "Token": "", "PageNo": 0, "OnePageNu

Android调用系统相机获取返回数据

由于项目需要调用相机,实现上传照片,例如微博,微信中功能.Android中可以非常轻松的调用系统相机,并返回Bitmap数据,但有一点不足,它返回的Bitmap尺寸很小,清晰度不够,这问题将稍后解决.下面通过代码演示. 1.界面布局 res/layout 定义一个简单布局,一个Button和ImageView,分别用于跳转系统相机Activity和显示系统相机返回数据. 1 <LinearLayout xmlns:android="http://schemas.android.com/ap

Yaml数据读取和数据转化

Yaml文件 familyInfo.yaml name: Tom Smith age: 37 wife: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name: Jenny Smith age: 12 yaml数据转化 dump()可以将Python的对象序列转化成YAML流,如果stream是none,那返回的则是字符串 import yaml slogan=['welcome','to','51zxw']

启动一个新的activity并携带数据,返回数据给上一个activity

一.在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据.在新启动的activity中通过           getIntent()方法获取启动activity的Intent,并通过getxxxxExtra()获取传递的数据. 二.如果希望被启动的新activity返回数据,则需要使用startActivityForResult()启动新的activity,方法携带两个参数,第二个为请求码,用于返回时判断是由哪个a

检查数据接口返回数据合法性

问题背景: 在测试&部署监控过程中,我们常常会遇到外部接口返回数据不靠谱的时候.最常见的场合是从某个http获取如json和xml等结构化的结果,进行解析并处理,在这时候出现以下这几种常见类型的错误: (1)整个结构不完整.直接无法解析json/xml. (2)编码错误,常见的gbk/utf8错误 (3)超长数据/非法字符. (4)数据类型不匹配.需要是数字的给了字符串,该是数组的给了字符串等,对json本身来说没问题,程序处理就会错误或者崩溃. (5)字段缺失或者为空,这个情况对json本身来

carry-检查数据接口返回数据合法性

问题背景: 在测试&部署监控过程中,我们常常会遇到外部接口返回数据不靠谱的时候.最常见的场合是从某个http获取如json和xml等结构化的结果,进行解析并处理,在这时候出现以下这几种常见类型的错误: (1)整个结构不完整.直接无法解析json/xml. (2)编码错误,常见的gbk/utf8错误 (3)超长数据/非法字符. (4)数据类型不匹配.需要是数字的给了字符串,该是数组的给了字符串等,对json本身来说没问题,程序处理就会错误或者崩溃. (5)字段缺失或者为空,这个情况对json本身来

intent传递数据和返回数据给上一个活动

startActivityForResult与startActivity的不同之处在于: 1.startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( ). 2.startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,