HttpWebResponse response=(HttpWebResponse)request.GetResponse()基础连接已经关闭: 发送时发生错误

joker运 2016-10-09 02:11:39
//获取请求
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)


这里进不去。日志中报错:基础连接已经关闭: 发送时发生错误。
...全文
247 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
joker运 2016-10-09
  • 打赏
  • 举报
回复
帮我看看
 /// <summary>
/// 网络接口调用成功返回路径,用户凭手机号登录即可获取二维码
/// </summary>
/// <param name="mobile">手机号</param>
/// <param name="communityNo">集群编号</param>
/// <param name="buildNo">楼栋号</param>
/// <param name="floorNo">楼层号</param>
/// <param name="roomNo">房间号</param>
/// <param name="startTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="areaCode">手机区号</param>
/// <returns></returns>
public Dictionary<string, object> GetLink(string mobile, string communityNo, string buildNo, string floorNo, string roomNo, string startTime, string endTime, string areaCode)
{
Dictionary<string, object> initError = paramCheckRest();
if (initError != null)
{
return initError;
}
initError = paramCheckAccount();
if (initError != null)
{
return initError;
}
try
{
string date = DateTime.Now.ToString("yyyyMMddhhmmss");
//构建url内容
string sigStr = MD5Encrypt(m_account + m_token + date).ToUpper();
string uriStr = string.Format("https://{0}:{1}/?c=Qrcode&a=getLink&sig={2}", m_restAddress, m_restPort, sigStr);
Uri address = new Uri(uriStr);
WriteLog("Request url =" + uriStr);
//创建网络请求
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
setCertificateValidationCallBack();

//构建Head
request.Method = "POST";
//增加下面两个属性即可
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version11;
//ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

Encoding myEncoding = Encoding.GetEncoding("utf-8");
byte[] myByte = myEncoding.GetBytes(m_account + ":" + date);
string authStr = Convert.ToBase64String(myByte);
request.Headers.Add("Authorization", authStr);

//构建Body
StringBuilder data = new StringBuilder();

if (m_bodyType == EBodyType.EType_XML)
{
request.Accept = "application/xml";
request.ContentType = "application/x-www-form-urlencode";
data.Append("<?xml version='1.0' encoding='utf-8'?><request>");
data.Append("<mobile>").Append(mobile).Append("</mobile>");
data.Append("<communityNo>").Append(communityNo).Append("</communityNo>");
data.Append("<buildNo>").Append(buildNo).Append("</buildNo>");
data.Append("<floorNo>").Append(floorNo).Append("</floorNo>");
data.Append("<roomNo>").Append(roomNo).Append("</roomNo>");
data.Append("<startTime>").Append(startTime).Append("</startTime>");
data.Append("<endTime>").Append(endTime).Append("</endTime>");
data.Append("<areaCode>").Append(areaCode).Append("</areaCode>");
data.Append("</request>");
}
else
{
request.Accept = "application/json";
request.ContentType = "application/x-www-form-urlencode";
data.Append("{");
data.Append("\"mobile\":\"").Append(mobile).Append("\",");
data.Append("\"communityNo\":\"").Append(communityNo).Append("\",");
data.Append("\"buildNo\":\"").Append(buildNo).Append("\",");
data.Append("\"floorNo\":\"").Append(floorNo).Append("\",");
data.Append("\"roomNo\":\"").Append(roomNo).Append("\",");
data.Append("\"startTime\":\"").Append(startTime).Append("\",");
data.Append("\"endTime\":\"").Append(endTime).Append("\",");
data.Append("\"areaCode\":\"").Append(areaCode).Append("\"");
data.Append("}");
}

byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());

WriteLog("request Body = " + data.ToString());
//开始请求
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
//获取请求
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{

//Get the response stram
StreamReader reader = new StreamReader(response.GetResponseStream());
string responseStr = reader.ReadToEnd();

WriteLog("response Body = " + responseStr);
Log.Write("request Body = " + responseStr, Log.LogType.Error, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name);

if (responseStr != null && responseStr.Length > 0)
{
Dictionary<string, object> responseResult = new Dictionary<string, object>();

if (m_bodyType == EBodyType.EType_XML)
{
XmlDocument resultXml = new XmlDocument();
resultXml.LoadXml(responseStr);
XmlNodeList nodeList = resultXml.SelectSingleNode("Response").ChildNodes;
foreach (XmlNode item in nodeList)
{
if (item.Name == "status")
{
responseResult["status"] = item.InnerText;
}
else if (item.Name == "info")
{
responseResult["info"] = item.InnerText;
}
else if (item.Name == "no")
{
responseResult["no"] = item.InnerText;
}
WriteLog("response item.innerText = " + item.InnerText);

}
return responseResult;
}
else
{
//解析JSON数据格式
JObject JsonObject = JObject.Parse(responseStr);
WriteLog("response status = " + JsonObject["status"].ToString());
WriteLog("response info = " + JsonObject["info"].ToString());

responseResult["status"] = JsonObject["status"].ToString();
responseResult["info"] = JsonObject["info"].ToString();
responseResult["no"] = JsonObject["no"].ToString();
return responseResult;

}

}
return new Dictionary<string, object> { { "status", 4003 }, { "info", "无返回" }, { "data", null } };
}

}
catch (Exception e)
{
throw e;
}
}

红色部分报错:)基础连接已经关闭: 发送时发生错误
修改一下昵称 2016-10-09
  • 打赏
  • 举报
回复
大多情况下是需要验证,然而没有验证成功,比如用户名密码不正确
http://blog.csdn.net/xiaoxiao108/article/details/6680605 开发环境 vs2008 wm6 .net cf 3.5 1、读取系统的新短信 2、把短信内容保存下来 3、程序开机后自动运行。 具体实现代码 1.订阅MessageReceived事件,收到短信后执行RevMsg_MessageReceived方法处理短信 private MessageInterceptor RevMsg; private void MessageService() { RevMsg = new MessageInterceptor(); RevMsg.MessageReceived += new MessageInterceptorEventHandler(RevMsg_MessageReceived); } 2.短信处理方法 可以把短信内容保存到指定链接,也可以保存到手机txt文件中 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.xxxxxxxxx.com/xxxx?nr=" + msg.Body.ToString() + "&ld=" + msg.From.ToString()); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); string WebContent = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd(); stream.Close(); response.Close(); 3.实现开机自动运行功能 打包cab文件,只需把快捷方式添加到Startup文件夹下面就ok。 不足之处:把短信内容保存到web,会开启手机的 edge功能,手机上面有个联网的E通知图标,2分钟后才会关闭,没找到能快速关闭EDGE网络图标的方法。 如果你发现有什么不合理的,需要改进的地方,联系328452421@qq.com 朱晓 。相互交流 谢谢 下载地址 顺便问下 有家是 新泰 的 有木有。 http://blog.csdn.net/xiaoxiao108/article/details/6680605

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧