我一直在尝试使用JSON进行一些客户端 - 服务器交互,但是,我发布到服务器的数据没有到达;我的PHP脚本中的$_POST
数组是空的。
我刚刚从MSDN直接抓取WebRequest示例并对其进行测试。那仍然行不通。我也试过用HTML表单发布一些数据,这很好。我完全难过了。
当我在PHP中调用getallheaders()
时,我得到了
OK
array(5) {
["Content-Type"]=>
string(33) "application/x-www-form-urlencoded"
["Host"]=>
string(9) "localhost"
["Content-Length"]=>
string(2) "54"
["Expect"]=>
string(12) "100-continue"
["Connection"]=>
string(10) "Keep-Alive"
虽然执行var_dump($ _ POST)返回数组(0)
有人可以提出任何建议吗?
答案 0 :(得分:1)
MSDN中的代码发送一个原始字符串,因此PHP不知道如何将其强制转换为字段并将其放入$_POST
。您应该能够使用file_get_contents('php://input')
获取POST数据。
如果您希望数据到达$_POST
,则需要对其进行编码(与编码方式相同,与编码GET参数的方式相同:
string postData="fieldName="+System.Web.HttpUtility.UrlEncode("The data that goes in the field");
与往常一样,如果您需要多个字段,则需要将它们与&
s分开。
答案 1 :(得分:0)
这些只是你的标题。您不应该期望在getallheaders()调用的结果中使用POST参数。您正在发送某些内容,因为内容长度建议为54个字节。尝试var dumping $ _REQUEST参数,看看它们是否正在使用其他方法提交。