我的代码需要通过 php 脚本向服务器提供一些信息。
基本上我想打电话www.sitename.com/example.php?var1=1&var2=2&var3=3
,但我不希望浏览器打开,所以Process.Start(URL);
不会工作。
因为我来这个网站是为了学习而不是为了得到答案,所以我将解释我到目前为止所做的事情以及我遇到的错误。如果您仍然知道解决方案,请随时跳过下一部分。
我环顾四周,看到了使用 POST 的解决方案:
ASCIIEncoding encoding=new ASCIIEncoding();
string postData="var1=1&var2=2&var3=3";
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/site.php");
myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();
// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();
但是,我需要使用GET
not POST
。起初我认为解决方案可能是更改myRequest.Method = "POST";
为GET
,但这不起作用,因为这不是GET
工作方式,它从 URL 中提取数据。
所以,然后我尝试将以前的代码更改为:
HttpwebRequest myRequest= (HttpWebRequest)WebRequest.Create("http://localhost/site.php" + postData);
Stream newStream = myRequest.GetRequestStream();
newStream.Close()
在它会调用 URL 的逻辑下,这将(希望)在 php 脚本上启动 GET_ 请求,然后生活将是花花公子。然而,这导致了以下错误:
A first chance exception of type 'System.Net.ProtocolViolationException' occurred in System.dll
An unhandled exception of type 'System.Net.ProtocolViolationException' occurred in System.dll
Additional information: Cannot send a content-body with this verb-type.
任何帮助表示赞赏,并感谢。