我已经使用 PHP 多年,并设置了许多 HTML 表单,然后由另一个 php 页面处理这些表单,以将记录插入到数据库中,并将 POST 参数设置为各个字段。
我现在正在使用一个新的 web 服务,它将数据发布到我们的一个 PHP 页面,我们无法解析出 POST 参数。我设置了一个测试 html 表单来模仿 POST 并且成功运行。
我一直在浏览 IIS 日志(服务器是运行 IIS 7.5 和 PHP 5.3.8 的 Windows Server 2008 R2 标准版)并安装了 Microsoft Network Monitor 以捕获有关 POST 数据的详细信息。这是显示 Web 服务和我的 HTML 表单的有效负载详细信息的摘录:
Webservice: - IIS 日志中的客户端显示为:Apache-HttpClient/4.0.1+(java+1.5)
- 有效负载:HttpContentType = NetmonNull HTTPPayloadLine:inReplyToId=MG1133&to=61477751386&body=Test&from=61477751386&messageId=166652576&rateCode=
我的 HTML 表单:
- 有效载荷:HttpContentType = application/x-www-form-urlencoded inReplyToId:MG1133 至:61477751386 正文:测试来自:61477751386 messageId:166594397
在 PHP 页面中,我们使用了一系列:
if(isset($_POST['inReplyToId']) && $_POST['inReplyToId'] !== '' ) {
$request->setField('ReplyToID', $_POST['inReplyToId']);
}
获取 POST 值并将它们设置为字段,作为在数据库中创建新记录的一部分。当 Web 服务执行 POST 时,不会将任何 POST 值设置到字段中 - 记录已创建但字段值为空。
当我们完成 html 表单时,一切都按预期完成。
我不确定下一步该去哪里进行故障排除 - 我可以看到不同的 HttpContentType 和不同的有效负载结构,但不确定这是否是问题以及我需要采取什么措施。