从C#WinForm将数据POST到PHP页面
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从C#WinForm将数据POST到PHP页面,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2163字,纯文字阅读大概需要4分钟。
内容图文
![从C#WinForm将数据POST到PHP页面](/upload/InfoBanner/zyjiaocheng/806/945cf1a92d2d48ed87533b41fdd1f7fd.jpg)
我有一个winForms NET3.5SP1应用程序,并希望将数据POST到PHP页面.
我也将把它作为JSON传递,但是想要先直接使用POST.
这是代码:
Person p = new Person();
p.firstName = "Bill";
p.lastName = "Gates";
p.email = "asdf@hotmail.com";
p.deviceUUID = "abcdefghijklmnopqrstuvwxyz";
JavaScriptSerializer serializer = new JavaScriptSerializer();
string s;
s = serializer.Serialize(p);
textBox3.Text = s;
// s = "{\"firstName\":\"Bill\",\"lastName\":\"Gates\",\"email\":\"asdf@hotmail.com\",\"deviceUUID\":\"abcdefghijklmnopqrstuvwxyz\"}"
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.davemateer.com/ig/genius/newuser.php");
//WebRequest request = WebRequest.Create("http://www.davemateer.com/ig/genius/newuser.php");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//byte[] byteArray = Encoding.UTF8.GetBytes(s);
byte[] byteArray = Encoding.ASCII.GetBytes(s);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close ();
WebResponse response = request.GetResponse();
textBox4.Text = (((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd ();
textBox4.Text += responseFromServer;
reader.Close ();
dataStream.Close ();
response.Close ();
PHP5.2代码是:
<?php
echo "hello world";
var_dump($_POST);
?>
返回:
array(0) {}
有任何想法吗?我希望它返回我刚刚传递给它的值,以证明我可以从服务器端访问数据.
解决方法:
我相信你需要正确编码并发送实际的帖子内容.看起来你只是序列化为JSON,PHP不知道该怎么做(即,它不会将其设置为$_POST值)
string postData = "firstName=" + HttpUtility.UrlEncode(p.firstName) +
"&lastName=" + HttpUtility.UrlEncode(p.lastName) +
"&email=" + HttpUtility.UrlEncode(p.email) +
"&deviceUUID=" + HttpUtility.UrlEncode(p.deviceUUID);
byte[] byteArray = Encoding.ASCII.GetBytes(postData);
// etc...
这应该在PHP集中得到你的$_POST变量.稍后当你切换到JSON时,你可以做类似的事情:
string postData = "json=" + HttpUtility.UrlEncode(serializer.Serialize(p) );
并从PHP抓取:
$json_array = json_decode($_POST['json']);
内容总结
以上是互联网集市为您收集整理的从C#WinForm将数据POST到PHP页面全部内容,希望文章能够帮你解决从C#WinForm将数据POST到PHP页面所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。