WebAPI:client客户端post提交签名数据/apiServer服务端返回json数据交互-简单示例 客户端: Web目录下的ApiClient/queryToken.aspx API服务端:WebApi目录下的/ApiServe/queryToken.aspx 客户端(Web:ApiClient/queryToken.aspx )以post方式提交json数据来访问API服务端(WebApi:ApiServe/queryToken.aspx),api服务端接受到数据在云端处理以后在以json的形式返回给客户端 使用步骤:1.修改 客户端: WebWeb:ApiClient/queryToken.aspx 文件:33行 return postUrl(values, "http://localhost:10673/ApiServe/queryToken.aspx") 的api url目标地址,这里的目标 地址就是 API服务端:webApi目录下的/ApiServe/queryToken.aspx的地址 使得平台有很强的扩展性,和数据安全性,可维护性,跨域实现数据的安全访问... 注意:如果遇到System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于目标计算机积极拒绝,无法连接。---------》请直接运行WebApi目录下的 /ApiServe/queryToken.aspx,然后粘贴浏览器地址至客户端: WebWeb:ApiClient/queryToken.aspx 文件:33行 return postUrl(values, "http://localhost:10673/ApiServe/queryToken.aspx") 的api url目标地址,这里的目标地址 代码: 客户端访问: try { var values = new NameValueCollection(); values["bussId"] = "wagg_d"; string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); values["tradeNo"] = tradeNo; values["timestamp"] = timestamp; string sign = "bussIdwagg_dtimestamp" + timestamp + "tradeNo" + tradeNo + "keyjzklfD7K9VS7FPWbOU"; sign = MD5(sign); values["sign"] = sign.ToUpper(); Label1.Text = values["bussId"] + " " +values["tradeNo"]+ " " + values["tradeNo"]+ " " + values["timestamp"]+ " " + values["sign"]; return postUrl(values, "http://localhost:10673/ApiServe/queryToken.aspx"); } catch (Exception ex) { errorlog log = new errorlog(); log.log(ex.ToString()); return ex.ToString(); } 服务器端返回: WebApi.Components.receive_post getpost = new receive_post(); string postdata = getpost.receivepost(); try { if (!IsPostBack) { if (postdata.Trim().Length <= 0) { Response.Write("error:null没有接收到post数据."); Response.End(); return; } else { IDGetUser(postdata); } } } catch (Exception ex) { errorlog log = new errorlog(); log.log(ex.ToString()); } } /// <summary> /// 返回json /// </summary> /// <param name="id"></param> private void IDGetUser(string postdata) { //读取数据数据 //DBhelp.Sql_Aaction bll = new DBhelp.BLL.Sql_Aaction(); // string sqlwhere = "select .. "; // DataSet ds = bll.GetList(sqlwhere); try { StringBuilder rjson = new StringBuilder(); Response.ContentType = "text/plain"; string access_token = string.Empty; string returnresult = WebApi.Components.tabletojson.DataTableToJson("data", WebApi.Components.construction_data_table.getdatatable());//table 格式化json access_token = UserTokenManager.gettoken(postdata); rjson.Append("{"); rjson.AppendFormat("\"code\":\"{0}\",", access_token); rjson.AppendFormat("\"msg\":\"{0}\",", "0"); rjson.Append(returnresult); rjson.AppendFormat(",\"sign\":\"{0}\"", "25w5s5edcrdf6sdf4f5fg"); rjson.Append("}"); Response.Write(rjson.ToString()); Response.End(); } catch (Exception ex) { errorlog log = new errorlog(); log.log(ex.ToString()); } } 源码下载地址: http://www./code/WebAPIClientSubmitSignatureData |
|