2. 接口请求代码实例
2.1. Net版本
string accessToken = "Bearer " + Token(接口授权回执单上的Token值); //key值:" Bearer Token值",使用的是Oauth2.0调用方式。
2.1.1. Get请求
/// <summary>
/// 通过Get请求从北森获取数据
/// </summary>
/// <param name="url">请求的接口url</param>
public static void GetDataFromBeisen(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Headers.Add("Authorization", accessToken);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string content = reader.ReadToEnd();
}
2.1.2. Post请求
/// <summary>
/// 通过Post请求向北森写数据
/// </summary>
/// <param name="url">请求的接口url</param>
/// <param name="parameterData">请求参数字典</param>
public static void PostDataToBeisen(string url, Dictionary<string, string> parameterData)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Headers.Add("Authorization", accessToken);
request.Method = "POST";
string postData = ParameterDataEncode(parameterData);
byte[] bytes = Encoding.UTF8.GetBytes(postData);
int length = bytes.Length;
request.ContentLength = length;
request.ContentType = "application/x-www-form-urlencoded";
using(Stream stream = request.GetRequestStream())
{
stream.Write(bytes, 0, bytes.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string content = reader.ReadToEnd();
}
/// <summary>
/// 请求数据编码
/// </summary>
/// <param name="parameterData">请求参数字典</param>
public static string ParameterDataEncode(Dictionary<string, string> parameterData)
{
StringBuilder builder = new StringBuilder(parameterData.Count * 128);
foreach(var kv in parameterData)
{
builder.Append(kv.Key).Append("=").Append(HttpUtility.UrlEncode(kv.Value)).Append("&");
}
return builder.ToString(0, builder.Length - 1);
}