我正在开发一个项目,我需要将变量作为帖子发送到PHP脚本。
C#调用一些方法来设置字符串变量,然后我需要将其发布到PHP脚本,以便PHP脚本可以使用变量中的数据。
我怎样才能做到这一点,我尝试了谷歌,但它们看起来有点复杂,以及如何从PHP获取数据,这很难解决帖子在示例中开始和结束的地方。
我需要知道的是如何将数据发布到脚本而不是C#,然后读取PHP脚本的内容。
感谢您提供的任何帮助。
更新 我认为我没有很好地解释自己想达到的目标。
这样做的目的是通过帖子将字符串格式的数据发送到PHP页面。然后我想将脚本加载到用户Web浏览器中,他们将能够看到php页面,当他们从php页面提交表单时,它可以使用发送给它的帖子中的信息。
以下是将要发生的事情的一步一步
希望这更有意义,这就是为什么我说我不希望C#返回PHP脚本正在做的事情,因为用户需要能够使用php页面。
答案 0 :(得分:1)
检查出来:
public static string Post(string service, IDictionary<string, string> objects)
{
// Create a request using a URL that can receive a post.
WebRequest request = WebRequest.Create(ServiceAdress+service+".php");
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
StringBuilder b= new StringBuilder();
foreach(KeyValuePair<string,string> o in objects)
b.Append(HttpUtility.UrlEncode(o.Key)).Append("=").Append(HttpUtility.UrlEncode(o.Value??"")).Append("&");
if (PHPSESSID != null)
b.Append("PHPSESSID=").Append(PHPSESSID).Append('&');
string postData = b.ToString(0, b.Length - 1);
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
if (((HttpWebResponse)response).StatusCode != HttpStatusCode.OK)
return null;
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;
}