C# to php to mysql
本文关键字:to mysql php | 更新日期: 2023-09-27 18:10:05
我正在运行一个服务器上的mysql数据库。我现在正在制作一个c#程序,它必须将一些数据放入数据库。出于安全原因,我会将数据发送到php脚本,该脚本将数据插入到本地mysql数据库中。
我正在尝试下面的代码,但是当我使用fiddler来检查url是否被调用时,它没有显示,所以看起来好像url从未被调用过。
我的代码是这样的:
string result = string.Empty;
string data2 = string.Empty;
string[] postdata = new string[8];
postdata[0] = "Date";
postdata[1] = log.EndTime.ToString();
postdata[2] = "Name";
postdata[3] = log.OwnerTask.Schedule.Name;
postdata[4] = "Status";
postdata[5] = log.ParsedStatus;
postdata[6] = "Message";
postdata[7] = log.ParsedMessage;
string Url = "http://x.x.x.x/send.php";
System.Text.ASCIIEncoding ascii = new ASCIIEncoding();
for (int i = 0; i < postdata.Length; i += 2)
{
data2 += string.Format("&{0}={1}", postdata[i], postdata[i + 1]);
}
data2 = data2.Remove(0, 1);
byte[] bytesarr = ascii.GetBytes(data2);
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = bytesarr.Length;
System.IO.Stream streamwriter = request.GetRequestStream();
streamwriter.Write(bytesarr, 0, bytesarr.Length);
streamwriter.Close();
}
有人能帮我一下吗?给我指个正确的方向?谢谢
更集中的答案,基于提供的现场评论
在写入流之后,您应该调用GetResponseStream
来实际执行请求:
System.IO.Stream streamwriter = request.GetRequestStream();
streamwriter.Write(bytesarr, 0, bytesarr.Length);
streamwriter.Close();
var response = request.GetResponseStream(); // this will execute the request
// [go on ...]
}
旧答案,发现了问题,但错过了OP代码的目的,留下参考
我现在无法在VS中验证它,但是这个
System.IO.Stream streamwriter = request.GetRequestStream();
^^^^^^^
应该System.IO.Stream streamwriter = request.GetResponseStream();
^^^^^^^^
如:您想解析响应,而不是请求(您的代码从未执行,这就是为什么您没有看到URL被击中)。