/// <summary>
/// 向指定的Web服务发送POST请求并返回响应内容
/// </summary>
/// <param name="url">Web服务的URL地址</param>
/// <param name="sendData">要发送的数据,通常为表单数据或JSON数据等</param>
/// <returns>Web服务的响应内容</returns>
private string RequestWebService(string url, string sendData)
{
// 创建一个HttpWebRequest对象,用于发送HTTP请求
HttpWebRequest request;
// 用于接收HTTP响应的对象
HttpWebResponse response;
// 用于存储从响应中读取的每一行数据的临时变量
string StrDate = "";
// 用于存储最终响应内容的变量
string strValue = "";
try
{
// 创建一个指向指定URL的HttpWebRequest对象
request = (HttpWebRequest)WebRequest.Create(url);
// 设置请求方法为POST
request.Method = "POST";
// 设置请求的内容类型为application/x-www-form-urlencoded,并使用UTF-8编码
request.ContentType = "application/x-www-form-urlencoded;utf-8";
// 设置请求的超时时间 例如:request.Timeout = 10 * 60 * 1000; // 10分钟
request.Timeout = 10 * 60 * 100000;
// 设置ServicePoint不期望100-Continue响应
request.ServicePoint.Expect100Continue = false;
// 将要发送的数据转换为UTF-8编码的字节数组
byte[] Data = Encoding.UTF8.GetBytes(sendData);
// 获取请求流,并将数据写入请求流中
request.GetRequestStream().Write(Data, 0, Data.Length);
// 发送请求并获取响应
response = (HttpWebResponse)request.GetResponse();
request.GetRequestStream().Close();
// 获取响应流
Stream Data_S = response.GetResponseStream();
// 创建一个StreamReader对象,用于从响应流中读取数据
StreamReader Reader = new StreamReader(Data_S, Encoding.UTF8);
// 循环读取响应流中的每一行数据,并添加到strValue中
while ((StrDate = Reader.ReadLine()) != null)
{
strValue += StrDate + "\r\n";
}
// 关闭响应流
Data_S.Close();
}
catch (Exception ex)
{
// 使用日志记录器记录异常信息
logger.Error("异常类型: \t" + ex.GetType());
logger.Error("异常描述:\t" + ex.Message);
logger.Error("异常方法:\t" + ex.TargetSite);
logger.Error("异常堆栈:\t" + ex.StackTrace);
}
// 返回响应内容
return strValue;
}
C# 请求接口方法
最新推荐文章于 2024-07-12 16:27:40 发布