【发布时间】:2015-04-01 02:49:15
【问题描述】:
我在PHP zend框架中工作。我有一个api函数如下。
http://testmywebsite/API/Testmyapifunction
我已将我的 api url 提供给我的一个客户。他们进行了设置,当他们发送短信时,我的 api url 被调用。他们正在推送消息的详细信息,例如消息内容、id、时间等等,我可以在我的 api 函数中获取详细信息。
我按以下方式获取详细信息。
$msg_id = $this->_getParam('msg_id');
$msg_senderid = $this->_getParam('msg_senderid');
$msg_content = $this->_getParam('msg_content');
我将这些值存储在我的数据库中。然后我想将这些值传递给另一台服务器。我有该服务器的 api url。但我无法将值传递给该服务器。
我按以下方式重定向值。
$this->_redirect('http://testanotherwebsite/API/Testapifunction.aspx?msg_id='.$msg_id.'&msg_senderid='.$msg_senderid .'&msg_content='.$msg_content);
我想将这些值传递给其他服务器。任何人都请帮助我。我在这个问题上工作了很多天,今天是我的最后期限。请帮助。
【问题讨论】:
-
那么,您是否检查过接收脚本是否通过 GET 或 POST 接受这些参数,并且您是否发送了所有必需的信息,并且您的请求是否已正确发送?此外,使用 GET,您可能应该对您的数据进行 URI 编码。使用类似
http_build_query -
当我通过在浏览器的地址栏中运行 url 进行测试时,一切正常,他们可以接收我传递的值。问题是当进程通过发送文本消息工作时。我们无法查看那种情况下的任何东西
-
你能给我看一个这个'http_build_query'的例子吗
-
好吧,正如我所说,现代浏览器会自动对您的数据进行 URI 编码,而 PHP 不会。做这样的事情
$this->_redirect('http://testwebsite/API/Testapifunction.aspx?' . http_build_query(array('msg_id' => $msg_id, 'msg_senderid' => $msg_senderid, 'msg_content' => $msg_content)));更多信息http_build_query这里php.net/manual/en/function.http-build-query.php -
我已经按照你的建议重写了代码,等待客户发送消息和测试,如果我有任何进一步的说明,请帮助我。