接口post +json +bean
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的更多相关文章
- Spring Boot 无侵入式 实现RESTful API接口统一JSON格式返回
前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api ...
- C#提供APP接口之JSON差异
C#在给APP提供接口,现在返回的数据大部分分为三类:JSON.XML.BTYE. 今天简单说下C#给APP提供接口返回JSON的一些异同: 1.通过Newtonsoft.Json.JsonConve ...
- C#调用接口返回json数据中含有双引号 或其他非法字符的解决办法
这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错, json字符格式如下 { "BOXINFO":[ { ", "ITE ...
- Postman Postman测试接口之JSON结构化数据提交
Postman测试接口之JSON结构化数据提交 by:授客 QQ:1033553122 本文主要是针对结构比较复杂一点的JSON协议数据的提交做个简单说明 举例: 用户下订单接口 接口方向 客户端 ...
- 微信小程序通过api接口将json数据展现到小程序示例
这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧实现知乎客户端的一个重要知识前提就是,要知道怎么通过 ...
- JMeter使用JSON Extractor插件实现将一个接口的JSON返回值作为下一个接口的入参
##补充## 接口响应数据,一般为JSON,HTML格式的数据. 对于HTML的响应结果提取,可以使用正则表达式,也可以通过XPath来提取:对于JSON格式的数据,可以用正则表达式,JSON Ext ...
- java通过url调用远程接口返回json数据
java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...
- LoadRunner模拟REST接口的json请求
LoadRunner模拟REST接口的json请求 现在很多手机应用的性能测试,REST接口调用通过json格式,在用loadrunner模拟这些json请求时,需要开发提供 1.供接口地址 2.提交 ...
- spring4mvc返回json(bean,list,map)
因为spring3和spring4的mvc在前端返回json所需要的jar包不一样,所以索性写一篇关于spring4mvc在前端返回json的博文. 首先,新建一个web项目,项目格式如图所示: co ...
随机推荐
- php 常量定义
php常量定义及取值 常量在定义时赋值: 不能变 :不能销毁: 具有超全局作用于:常量只能储存标量数据(字符 整型 浮点 ): <?php define("hello", ...
- js便利json 数组的方法
这篇文章主要介绍了JQuery遍历json数组的3种方法,本文分别给出了使用each.for遍历json的方法,其中for又分成两种形式,需要的朋友可以参考下 $(function () { var ...
- 关于php数组是否要声明
不知道大家有没有这样玩过php数组,正常情况下直接不声明,直接使用数组,会发现输出的与声明后的结果是一样的.
- Sonatype Nexus 服务启动失败问题解决
Sonatype Nexus 服务启动失败问题解决 问题前述: 近日在开发机本机安装了 Oracle 数据库快捷版 11g2 之后,重启电脑后发现本机的maven代理服务无法访问. 现象 通过 Win ...
- PHP不使用递归的无限级分类
不用递归实现无限级分类,简单测试了下性能比递归稍好一点点点,但写得太复杂了,还是递归简单方便点 代码: <?php $list = array( array('id'=>1, 'pid'= ...
- Haskell Json数据处理
json的基本类型为——string, numbers, Booleans以及null,定义json类型如下 -- file: Json.hs module Json where data JValu ...
- 转:【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链
[译]Asp.net MVC 利用自定义RouteHandler来防止图片盗链 你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你 ...
- 关于css起名
作者:词晖链接:https://www.zhihu.com/question/19586885/answer/48933504来源:知乎著作权归作者所有,转载请联系作者获得授权. CSS书写顺序 1. ...
- xshell 注册码
Xshell 5 注册码: 101210-450789-147200Xftp 5 注册码:101210-450789-147200 Xmanager 5 注册码:101210-450789-14720 ...
- angular.js跨域post解决方案
跨域,前端开发中经常遇到的问题,AngularJS实现跨域方式类似于Ajax,使用CORS机制. 下面阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpR ...