C#跨平台调用接口(URL传参GET调用和Post Json传参调用)
来源:互联网 发布:centos svn 防火墙 编辑:程序博客网 时间:2024/06/03 13:40
方法一:URL传参Get调用
使用HttpWebRequest,将参数Get调用
string HampsonURL = new BSysConfig().GetValue(ConfigKey.接口地址);
HampsonInfo Hmodel = new HampsonInfo();
Hmodel.cname = ePersonInfo.Name;
Hmodel.cmobile = ePersonInfo.Mobile;
Hmodel.cage = ePersonInfo.Age.ToString();
Hmodel.ccity = ePersonInfo.IntentCity;
Hmodel.user = "8a9ea098ac0079426ae3c722c8e48d0d";
string url = string.Format(@"{0}?user={1}&cname={2}&cmobile={3}&cage={4}&ccity={5}"
, HampsonURL, Hmodel.user, Hmodel.cname, Hmodel.cmobile, Hmodel.cage, Hmodel.ccity);
try
{
string resultCode = GetHttp(url, 100000);
switch (Convert.ToInt32(resultCode))
{
case 0:
result = "录入成功";
break;
case 1:
result = "此用户已存在";
break;
case 2:
result = "其他错误";
break;
default:
result = "文档木有写是啥错";
break;
}
}
catch (Exception ex)
{
result = "异常:"+ex.ToString();
}
public static string GetHttp(string url, int timeout)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = timeout;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
StringBuilder builder = new StringBuilder();
while (-1 != reader.Peek())
{
builder.Append(reader.ReadLine());
}
return builder.ToString();
}
catch (Exception exception)
{
return ("错误:" + exception.Message);
}
}
方法二:创建对象,序列化为Json格式,在使用WebRequest进行POST调用
string MeilianCPS = new BSysConfig().GetValue(ConfigKey.接口地址);
string MeilianKEY = new BSysConfig().GetValue(ConfigKey.加密字符);
MeiLian_CPSInfo Mmodel = new MeiLian_CPSInfo();
Mmodel.City = ePersonInfo.IntentCity;
Mmodel.Mobile = ePersonInfo.Mobile;
Mmodel.Name = ePersonInfo.Name;
Mmodel.Sex = ePersonInfo.Sex == 1 ? "True" : "False";
Mmodel.UserName = "cps_shiji";
string Keys = Mmodel.Mobile + MeilianKEY;
Mmodel.KEY = EncryptString.EncryptMD5(Keys);//
string strContent = JsonHelper.Serialize(Mmodel);
result = GetMobileConfByUserId(strContent, MeilianCPS);
if (result.Contains("000000"))
result = "操作成功";
public string GetMobileConfByUserId(string strContent, string strOnLine)
{
string rs = null;
ServicePointManager.DefaultConnectionLimit = 300;
CookieContainer cookieContainer = new CookieContainer();
// 设置提交的相关参数
HttpWebRequest request = null;
HttpWebResponse SendSMSResponse = null;
Stream dataStream = null;
StreamReader SendSMSResponseStream = null;
try
{
request = WebRequest.Create(strOnLine) as HttpWebRequest;
request.Method = "POST";
request.KeepAlive = false;
request.ServicePoint.ConnectionLimit = 300;
request.AllowAutoRedirect = true;
request.Timeout = 10000;
request.ReadWriteTimeout = 10000;
request.ContentType = "application/json";
request.Accept = "application/xml";
request.Headers.Add("ProduceAction", HttpUtility.UrlEncode("CustomerIncome"));
byte[] bytes = Encoding.UTF8.GetBytes(strContent);
request.Proxy = null;
request.CookieContainer = cookieContainer;
using (dataStream = request.GetRequestStream())
{
dataStream.Write(bytes, 0, bytes.Length);
}
SendSMSResponse = (HttpWebResponse)request.GetResponse();
if (SendSMSResponse.StatusCode == HttpStatusCode.RequestTimeout)
{
if (SendSMSResponse != null)
{
SendSMSResponse.Close();
SendSMSResponse = null;
}
if (request != null)
{
request.Abort();
}
return null;
}
SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string strRespone = SendSMSResponseStream.ReadToEnd();
return strRespone;
}
catch (Exception ex)
{
if (dataStream != null)
{
dataStream.Close();
dataStream.Dispose();
dataStream = null;
}
if (SendSMSResponseStream != null)
{
SendSMSResponseStream.Close();
SendSMSResponseStream.Dispose();
SendSMSResponseStream = null;
}
if (SendSMSResponse != null)
{
SendSMSResponse.Close();
SendSMSResponse = null;
}
if (request != null)
{
request.Abort();
}
}
finally
{
if (dataStream != null)
{
dataStream.Close();
dataStream.Dispose();
dataStream = null;
}
if (SendSMSResponseStream != null)
{
SendSMSResponseStream.Close();
SendSMSResponseStream.Dispose();
SendSMSResponseStream = null;
}
if (SendSMSResponse != null)
{
SendSMSResponse.Close();
SendSMSResponse = null;
}
if (request != null)
{
request.Abort();
}
}
return rs;
}
- C#跨平台调用接口(URL传参GET调用和Post Json传参调用)
- ASP.NET C#后台调用公网接口(GET, POST)
- http post调用指定Url接口(C#实现)
- Post/get 提交调用抓取Url获取json字符串
- C# 调用Get,Post,Soap调用WebService
- 如何调用http接口通过get()/post()方法传参
- 如何调用http接口获取json数据及GET/POST方式调用http接口
- C#调用URL接口方法
- java HttpUrlConnection get和post 模拟请求 调用接口
- post和get请求调用Http接口并拿到数据
- get/post方式调用http接口
- get/post方式调用http接口
- get/post方式调用http接口
- java HttpClient get post请求 调用接口
- get/post方式调用http接口
- get/post方式调用http接口
- get/post方式调用http接口
- get/post方式调用http接口
- I2C总线时序
- zImage与uImage的区别
- JavaScript基础
- Zabbix Graphs汇总
- 拥抱 Android Studio 之三:溯源,Groovy 与 Gradle 基础
- C#跨平台调用接口(URL传参GET调用和Post Json传参调用)
- [理解leetcode解法]98. Validate Binary Search Tree 判断是否二分查找树
- 框架模式 MVC 在Android中的使用
- JSPath基础用法
- RGB与HSB之间的转换公式
- ip冲突和双网卡模式
- ChildViewController
- 关于iOS多线程,你看我就够了
- Tomcat类加载机制