调用:
//参数
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("organId", HttpUtility.UrlEncode(organId));
parameters.Add("method", HttpUtility.UrlEncode("DataUpload"));
parameters.Add("transData", HttpUtility.UrlEncode(data));
parameters.Add("security", HttpUtility.UrlEncode(security));
//http请求
System.Net.HttpWebResponse res = SynchronUtil.CreatePostHttpResponse(inspurUrl, parameters);
if (res == null)
{
WriteTextLog( "接口访问失败,可能是由于您的网络环境差、不稳定或安全软件禁止访问网络,您可在网络好时或关闭安全软件在重新访问网络。<br/>", System.DateTime.Now);
}
else
{
//获取返回数据转为字符串
string inspurBackContent = SynchronUtil.GetResponseString(res);
}
/// 创建POST方式的HTTP请求
public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters)
{
try
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//发送POST数据
if (!(parameters == null || parameters.Count == 0))
{
StringBuilder buffer = new StringBuilder();
int i = 0;
foreach (string key in parameters.Keys)
{
if (i > 0)
{
buffer.AppendFormat("&{0}={1}", key, parameters[key]);
}
else
{
buffer.AppendFormat("{0}={1}", key, parameters[key]);
i++;
}
}
byte[] data = Encoding.ASCII.GetBytes(buffer.ToString());
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
string[] values = request.Headers.GetValues("Content-Type");
return request.GetResponse() as HttpWebResponse;
}
catch (Exception ex)
{
Log4Util.ErrorLog("接口服务器无法远程连接", ex);
}
return null;
}
/// <summary>
/// 获取请求的数据
/// </summary>
public static string GetResponseString(HttpWebResponse webresponse)
{
using (Stream s = webresponse.GetResponseStream())
{
StreamReader reader = new StreamReader(s, Encoding.UTF8);
return reader.ReadToEnd();
}
}