C# - Json POST request sent but not received by PHP server(C# - Json POST 请求已发送但未被 PHP 服务器接收)
问题描述
我正在从 C# windowsform 应用程序向托管在 OpenShift (Redhat) 上的 PHP 服务器发送 HTTP 请求.我正在使用 POST 方法和 Json 数据.
I am sending a HTTP request from a C# windowsform application to PHP server hosted on OpenShift (Redhat). I am using the method POST, with Json data.
问题在于:
- 数据似乎正确发送(我看到了wireshark中的数据包)
- php 脚本正确启动,我在日志中看到收到了一条 POST 消息
- 但是没有收到 POST 数据..
这里是 C# 代码:
string json = "{"user":"test"," +
""n":"2"}";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://........rhcloud.com/webservices.php");
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = json.Length;
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Close();
var httpResponse = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Debug.WriteLine("R : " + result);
}
}
这是PHP代码:
echo "Start Saving ! ";
// Handle Posted Data From C# App
if (isset($_POST) && !empty($_POST))
{
echo 'Data Recieved';
}
else
{
// Error
echo 'No POST Data Found';
}
函数总是返回:开始保存!没有找到POST数据".
The function always return : "Start Saving ! No POST Data Found".
这是服务器上的日志行:
这是wireshark中的一行:
有人看到问题了吗?如果我不清楚,请随时告诉我.会不会是 Openshift 拦截了数据?我的php文件有问题吗?
Is someone seeing the problem? Do not hesitate to tell me if I am not clear. Could it be Openshift which intercept the data ? Does my php file have a problem?
推荐答案
PHP 的 $_POST
不理解 JSON.
PHP's $_POST
does not understand JSON.
你想要的是类似的东西
// Error handling is left as an exercise
$input = json_decode(file_get_contents('php://input'), true);
然后您应该能够像使用 $_POST
那样使用 $input
.请参阅 json_decode
以了解其他要旋转的旋钮.
You should then be able to use $input
the way you seem to want to use $_POST
. See json_decode
for additional knobs to twiddle.
这篇关于C# - Json POST 请求已发送但未被 PHP 服务器接收的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C# - Json POST 请求已发送但未被 PHP 服务器接收
基础教程推荐
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 使用 PDO 转义列名 2021-01-01
- HTTP 与 FTP 上传 2021-01-01