request.BeginGetResponse(new AsyncCallback(ReadCallback), request) 回调更新数据库问题

jrl5365 2016-07-25 08:45:40
//设置https验证方式
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);//验证服务器证书回调自动验证
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.ConnectionGroupName = uid + "," + utype;
request.BeginGetResponse(new AsyncCallback(ReadCallback), request);


private static void ReadCallback(IAsyncResult ar)
{
HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(ar);

using (Stream responseStream = response.GetResponseStream())
{
StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8);

string unionid = readStream.ReadToEnd();


if (!string.IsNullOrEmpty(unionid))
{
string[] arr = request.ConnectionGroupName.Split(',');

string uid = arr[0].ToString();
string utype = arr[1].ToString();

if (!string.IsNullOrEmpty(uid))
{
//更新数据库
if (utype == "1")
{
string filename = @"D:\www\2013_Tzrl\Tzrl_Wan\log.txt";
StreamWriter sr = null;
try
{
if (!File.Exists(filename))
{
sr = File.CreateText(filename);
}
else
{
sr = File.AppendText(filename);
}
sr.WriteLine("," + uid + "," + utype + "," + unionid);
}
catch
{
}
finally
{
if (sr != null)
sr.Close();
}
//此处写入文件中的信息是正常回调过来的我要的信息,但是等操作数据库更新的时候就无反应
//数据库操作是没有错的!我测试过的。。。。。

}
else
{

}
}
}
request.Abort();
response.Close();
readStream.Close();
}
}




哪位高手有遇到过类似的问题么?网上看到的也都是打印出来的,没有看到类似操作数据库更新的
...全文
218 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakieliu_big 2016-12-07
  • 打赏
  • 举报
回复
为什么我的程序报:当前上下文不存在名称ReadCallback?求老司机指点。
Poopaye 2016-07-25
  • 打赏
  • 举报
回复
你所谓的数据库就是log.txt?
jrl5365 2016-07-25
  • 打赏
  • 举报
回复
引用 4 楼 From_TaiWan 的回复:
会不会是因为流之间的冲突,尝试:将回调信息保存到变量,然后关闭response、request、responseStream,然后建立sqlconnection,写数据库 再进一步确定写数据库有没有问题,例如,在那个代码位置,写入其他信息(如ABC,40等,自己编造的,不是回调返回),以确认是不是写入数据格式问题
我直接用默认值也是无法更新!我在更新数据前写文档是能正常写出来信息的,就是更新数据库就不能用了
秋的红果实 2016-07-25
  • 打赏
  • 举报
回复
会不会是因为流之间的冲突,尝试:将回调信息保存到变量,然后关闭response、request、responseStream,然后建立sqlconnection,写数据库 再进一步确定写数据库有没有问题,例如,在那个代码位置,写入其他信息(如ABC,40等,自己编造的,不是回调返回),以确认是不是写入数据格式问题
jrl5365 2016-07-25
  • 打赏
  • 举报
回复
哪位老司机有接触过类似问题的,麻烦指点一二
jrl5365 2016-07-25
  • 打赏
  • 举报
回复
引用 1 楼 yahle 的回复:
恭喜你答对了,这个应该只是异步回调的demo,不带数据库访问的,数据库写入的得你自己写,就按照一般的数据库访问代码写就是了。
异步回调是正常的,我也能获取到回调回来的信息,我现在想把信息更新到数据库中,但一直不操作更新数据库方法,只能输出到文档中是能正常显示出来的信息的。。。
yahle 2016-07-25
  • 打赏
  • 举报
回复
恭喜你答对了,这个应该只是异步回调的demo,不带数据库访问的,数据库写入的得你自己写,就按照一般的数据库访问代码写就是了。
jrl5365 2016-07-25
  • 打赏
  • 举报
回复
引用 8 楼 shingoscar 的回复:
[quote=引用 7 楼 jrl5365 的回复:] [quote=引用 6 楼 shingoscar 的回复:] 你所谓的数据库就是log.txt?
不是log.txt只是我打印数据查看的!是可以正常,但mssql操作就不行[/quote] 我眼花了吗?哪来的sql操作?[/quote] sql我去了,我只是说,我sql的测试过的~只是没有把代码放上去。。。
Poopaye 2016-07-25
  • 打赏
  • 举报
回复
引用 7 楼 jrl5365 的回复:
[quote=引用 6 楼 shingoscar 的回复:] 你所谓的数据库就是log.txt?
不是log.txt只是我打印数据查看的!是可以正常,但mssql操作就不行[/quote] 我眼花了吗?哪来的sql操作?
jrl5365 2016-07-25
  • 打赏
  • 举报
回复
引用 6 楼 shingoscar 的回复:
你所谓的数据库就是log.txt?
不是log.txt只是我打印数据查看的!是可以正常,但mssql操作就不行

110,561

社区成员

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

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

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