public ReturnBean<DealBean> getMember(String tagtype, String tag)
{

try
{
String requestUrl = getObjectUrl(SynUrl.getMemberByCondition, new String[] { "vendorId", "posCode", "tagtype", "tag", }, new Object[] { posset.VendorId, posset.PosCode, tagtype,tag}, posset.VendorId);
String result = HttpWebHelper.OpenReadWithHttps(requestUrl.ToString(), null);
ReturnBean<DealBean> rb = (ReturnBean<DealBean>)Newtonsoft.Json.JsonConvert.DeserializeObject(result, typeof(ReturnBean<DealBean>));
return rb;
}
catch (Exception exx)
{
return null;
}
}

private String getObjectUrl(String bizUrl, String[] parameterNames, Object[] parameterValue, long vendorId, String serverUrl = null)
{
if (string.IsNullOrEmpty(serverUrl))
{
Posset posset = SystemConfig.getPosset();
serverUrl = posset.ServerUrl;//先取数据库中的设置
}
if (string.IsNullOrEmpty(serverUrl)) {//如果为空再去默认的设置
serverUrl = SynUrl.ServersUrl;
}
if (!serverUrl.EndsWith("/"))//是否以/结尾
{
serverUrl = serverUrl + bizUrl;
}
else {
serverUrl = serverUrl.TrimEnd('/') + bizUrl;
}
if (!serverUrl.Contains("?"))//是否以?结尾
{
serverUrl = serverUrl + "?";
}
StringBuilder sb = new StringBuilder();
sb.Append(serverUrl);
if (parameterNames != null) {
for (int i = 0; i < parameterNames.Length; i++) {
if (serverUrl.EndsWith("?") && i == 0)//只有以?结束并且i=0的时候&符号才可以不要
{
sb.AppendFormat(parameterNames[i] + "={0}", parameterValue[i]);
}
else{
sb.AppendFormat("&"+parameterNames[i] + "={0}", parameterValue[i]);
}

}
}
string resultStr=sb.ToString();
string queryString = resultStr.Substring(resultStr.IndexOf("?")+1, resultStr.Length-resultStr.IndexOf("?")-1);
Regex oRegex = new Regex(@"[\u4E00-\u9FA5]");
string dealQueryString =oRegex.Replace(queryString, "");//要处理下汉字 因为两边的加密不一样
string vendorstr = Encrypt.Encrypt_MD5(Encrypt.Encrypt_MD5(vendorId+"").ToUpper()).ToUpper();
//----处理签名
string sign = Encrypt.Encrypt_MD5(dealQueryString + vendorstr).ToUpper();
sb.Append("&sign=" + sign);//把签名补上
return sb.ToString();
}

public static string OpenReadWithHttps(string URL, IDictionary<string, string> parameters, int timeout = 60000, string method = "POST", string strEncoding = "utf-8")
{
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
string strPostdata = null;
if (parameters != null && parameters.Count > 0)
{
strPostdata = "";
string press = "";
foreach (KeyValuePair<string, string> kv in parameters)
{
strPostdata += press + kv.Key + "=" + kv.Value;
press = "&";
}
}
request.Method = method;
request.Accept = "text/html, application/xhtml+xml, */*";
request.ContentType = "application/x-www-form-urlencoded";
if (!string.IsNullOrEmpty(strPostdata))
{
byte[] buffer = encoding.GetBytes(strPostdata);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
}
request.Timeout = timeout;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(strEncoding)))
{
return reader.ReadToEnd();
}

}


public static FlightsResponse QueryFlightPost(FlightQueryRequest ReqDTO)
{
FlightsResponse FlightsRespDTO = new FlightsResponse();
try
{
string requestDTO = JsonConvert.SerializeObject(ReqDTO);
MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
HttpContent httpContent = new ObjectContent(ReqDTO, jsonFormatter);
var url = RequestUrl + "/QueryFlight";
var httpClient = new HttpClient(new RequestHandler() { InnerHandler = new HttpClientHandler() });
httpClient.Timeout = TimeSpan.FromMinutes(3);
var responseJson = httpClient.PostAsync(url, httpContent).Result;
FlightsRespDTO = responseJson.Content.ReadAsAsync().Result; }
catch (Exception)
{
FlightsRespDTO = new FlightsResponse();
}
return FlightsRespDTO;
}

接口post +json +bean的更多相关文章

  1. Spring Boot 无侵入式 实现RESTful API接口统一JSON格式返回

    前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api ...

  2. C#提供APP接口之JSON差异

    C#在给APP提供接口,现在返回的数据大部分分为三类:JSON.XML.BTYE. 今天简单说下C#给APP提供接口返回JSON的一些异同: 1.通过Newtonsoft.Json.JsonConve ...

  3. C#调用接口返回json数据中含有双引号 或其他非法字符的解决办法

    这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错, json字符格式如下 { "BOXINFO":[ { ", "ITE ...

  4. Postman Postman测试接口之JSON结构化数据提交

    Postman测试接口之JSON结构化数据提交   by:授客 QQ:1033553122 本文主要是针对结构比较复杂一点的JSON协议数据的提交做个简单说明 举例: 用户下订单接口 接口方向 客户端 ...

  5. 微信小程序通过api接口将json数据展现到小程序示例

    这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧实现知乎客户端的一个重要知识前提就是,要知道怎么通过 ...

  6. JMeter使用JSON Extractor插件实现将一个接口的JSON返回值作为下一个接口的入参

    ##补充## 接口响应数据,一般为JSON,HTML格式的数据. 对于HTML的响应结果提取,可以使用正则表达式,也可以通过XPath来提取:对于JSON格式的数据,可以用正则表达式,JSON Ext ...

  7. java通过url调用远程接口返回json数据

    java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...

  8. LoadRunner模拟REST接口的json请求

    LoadRunner模拟REST接口的json请求 现在很多手机应用的性能测试,REST接口调用通过json格式,在用loadrunner模拟这些json请求时,需要开发提供 1.供接口地址 2.提交 ...

  9. spring4mvc返回json(bean,list,map)

    因为spring3和spring4的mvc在前端返回json所需要的jar包不一样,所以索性写一篇关于spring4mvc在前端返回json的博文. 首先,新建一个web项目,项目格式如图所示: co ...

随机推荐

  1. Hex Workshop(16进制编辑利器) 6.7.2绿色版

    软件名称: Hex Workshop 6.7.2绿色版(16进制编辑利器) 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 1.8MB 图片预览: 软件简介 ...

  2. js两种生成对象模式(公有成员和成员私有)

    假设有个需求,创建一个book类,有isbn码,书名,作者 :可以对isbn进行数据完整性校验:--js设计模式 <script type="text/javascript" ...

  3. webAPI---发布(IIS)--发布遇到问题(500.19,500.21,404.8,404.3)

    WebAPI的内容部分直接转自官方文档,英语水平有限,不做翻译, 发布网站在本文的后半部分 HTTP is not just for serving up web pages. It is also ...

  4. ACboy needs your help hdu 分组背包问题

    Description ACboy has N courses this term, and he plans to spend at most M days on study.Of course,t ...

  5. 什么是Bash Shell的内建(build in)命令

    1.什么是build in命令: shell内建命令是指bash(或其它版本)工具集中的命令.一般都会有一个与之同名的系统命令,比如bash中的echo命令与/bin/echo是两个不同的命令,尽管他 ...

  6. 🐒-mysql(1)

    Mac 终端启动mysql 本文下载的mysql版本为:5.7.17.MySQL Workbench版本为:5.2.47(后面会提及如何选择下载版本) 一.下载MySQL 1.1.访问http://w ...

  7. python 学习 [day7]面向对象

    编程模式概念 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向对象的三大 ...

  8. tableView区头不显示

    不知道什么原因 如果设置tableView的样式为Group 则必须写代理 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; co ...

  9. power oj 1557种树[二进制状压DP]

    题目链接[https://www.oj.swust.edu.cn/problem/show/1557] 题意:中文题目. 题解:用0,1表示某个位置是否种了树,先算出同一行的有效状态的总数,即开两个1 ...

  10. css的三种引入方式、常用的元素选择器以及css三大特性

    第一.html文件中如何使用css html文件中使用css有3种方式:链接式.嵌入式.行内式,推荐使用程度依次递减:1.链接式:在html文件通过<link />标签引入,rel属性值必 ...