如何将一些数据从C#.net传递到网页?我目前正在使用它:
ProcessStartInfo p1 = new ProcessStartInfo("http://www.example.com","key=123");
Process.Start(p1);
但我如何从PHP访问它?我试过了:
<?php echo($_GET['key']); ?>
但它没有打印任何内容。
答案 0 :(得分:1)
尝试使用网址
传递它ProcessStartInfo p1 = new ProcessStartInfo("http://timepass.comule.com?key=123","");
Process.Start(p1);
答案 1 :(得分:1)
您应该将key参数作为查询字符串:
ProcessStartInfo p1 = new ProcessStartInfo("http://timepass.comule.com?key=123");
答案 2 :(得分:1)
我建议使用HttpWebRequestClass。
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx
这样,您还可以将数据发布到您的页面,添加身份验证参数,Cookie等 - 以防您可能需要它。
我不确定这在您的特定设置中是否重要,通过查询字符串传递数据是不安全的。但是如果安全性也是一个问题,我会通过SSL连接POST数据。
更新
所以如果你把数据发送到你的php页面就像这样:
string dataToSend = "data=" + HttpUtility.UrlEncode("this is your data string");
var dataBytes = System.Text.Encoding.UTF8.GetBytes(dataToSend);
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://localhost/yourpage.php");
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = dataBytes.Length;
req.Method = "POST";
using (var stream = req.GetRequestStream())
{
stream.Write(dataBytes, 0, dataBytes.Length);
}
// -- execute request and get response
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
if (resp.StatusCode == HttpStatusCode.OK)
Console.WriteLine("Hooray!");
您可以使用php页面中的以下代码检索它:
echo $_POST["data"])
更新2:
AFAIK,ProcessStartInfo / Process.Start()实际上启动了一个进程 - 在这种情况下,我认为它将启动您的浏览器。第二个参数是命令行参数。程序使用此信息,以便他们知道启动时的行为(隐藏,打开默认文档等)。无论如何它与查询字符串无关。如果你更喜欢使用Process.Start(),那么尝试这样的事情:
ProcessStartInfo p1 = new ProcessStartInfo("iexplore","http://google.com?q=test");
Process.Start(p1);
如果您运行该程序,它将打开Internet Explorer并在搜索框中打开带有测试的google。如果那是你的页面,你可以通过调用:
来访问“q”echo $_GET["q"])
答案 3 :(得分:0)
在我的应用程序中,我使用了不同的方法,即使用webClient我完成了它
WebClient client1 = new WebClient();
string path = "dtscompleted.php";//your php path
NameValueCollection formData = new NameValueCollection();
byte[] responseBytes2=null;
formData.Add("key", "123");
try
{
responseBytes2 = client1.UploadValues(path, "POST", formData);
}
catch (WebException web)
{
//MessageBox.Show("Check network connection.\n"+web.Message);
}