接口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 ...
随机推荐
- java基础第三天
- Web网页数据抓取(C/S)
通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序.比方说我们有一个系统,要提取BaiDu网站上歌曲搜索排名.分析系统在根据得到的数据进行数据分析.为业务提供参考数据. 为了完成以上的需求,我们 ...
- 真的了解JS么?
1.setTimeout setTimeout(function(){ }),1000) setTimeout(function(num){ alert(num) //弹123 },1000,1 ...
- C#项目间循环引用的解决办法,有图有真相
C#项目间循环引用的解决办法,有图有真相 程序间的互相调用接口,c#禁止互相引用,海宏软件,20160315 /// c#禁止互相引用,如果项目[订单]中有一个orderEdit单元,要在项目[进销存 ...
- 【NOIP2013提高组】货车运输
货车运输 (truck.cpp/c/pas) [问题描述] A国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有q辆货车在运输货物,司机们想知道每辆 ...
- Java NIO Path接口和Files类配合操作文件
Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ...
- Linux_jdk
先查看下 yum list java* yum install java-1.7.0-openjdk* -y 环境变量应该是会自动配置的 或者手动配置编辑/etc/profile #vi /etc/p ...
- i++与++i区别使用
中心:使用变量自增或者处减使用尽量使用++i与--i,而不要去使用i++与i-- ++i与--i可以做左值也可以做右值,而i++与i--只能做右值. 对于基础类型i++与++i结果相同,但是i++肯定 ...
- 关于指针要注意的地方还有尝试在codeblocks上建立项目
1.字符串: char a[]="house"; char *b="house"; a[2]='r';可以 b[2]='r'不可以,因为这个指针变量指的是字 ...
- CSS预处理器 Less Sass,Scss 编译 Sourcemap调试
sass.less和stylus的安装使用和入门实践 SASS用法指南 Sass Basics CSS预处理器 css preprocessor 预处理器即preprocessor,预处 ...