使用Zend_Http_Client发送发布请求

时间:2012-02-21 10:04:01

标签: php http zend-framework post

我想将带有网址重定向的帖子请求发送到请求页面。 Jest认为请求页面目前用于句柄提交表单。

我在我的请求页面中尝试了以下代码。

<?php

$myFile = "test.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Request come to the page\n";
fwrite($fh, $stringData);

if (isset($_POST)) {
        $stringData = $_POST['user'];
        fwrite($fh, $stringData);
}

fclose($fh);
echo 'page found';

我尝试Zend_Http_Client来做到这一点。这是我的简单行动。

public function indexAction()
{   
    $client = new Zend_Http_Client('http://localhost/test/test.php');

    $client->setParameterPost(array('user' => 'dinuka'));
    $client->setConfig(array('strictredirects' => true));

    $response = $client->request(Zend_Http_Client::POST); 
}

现在请求发送到test.php。但不能重定向到http://localhost/test/test.php页面。我想发送请求+重定向。我先前问了这个问题。但它只是纯粹的问题。请帮我。我对http请求不太了解。什么是strictredirects

1 个答案:

答案 0 :(得分:1)

我认为这可能涵盖了你想要的基本知识:

<?php

class IndexController extends Zend_Controller_Action {

    public function init() {
    }

    public function indexAction() {
        //set form action to indexController nextAction
        $form = My_Form();
        $form->setAction('/index/next');
        //asign form to view
        $this->view->form = $form;
    }

    public function nextAction() {
        //if form is posted and valid
        if ($this->getRequest()->isPost()) {
            if ($form->isValid($this->getRequest()->getPost())) {
                $data = $form->getValues();

                //Do some stuff
            }
        } else {
            //if form not posted go to form in indexAction
            $this->_forward('index');
        }
    }
}

好像这是你问题的形式,但你真正想知道的是如何在重定向中发送帖子数据而不是获取数据,如果我在正确的轨道上请 评论我们如何改变它以帮助您解决问题。

public function indexAction()
{   
    $client = new Zend_Http_Client('http://localhost/test/test.php');

    $client->setParameterPost(array('user' => 'dinuka'));
    $client->setConfig(array('strictredirects' => true));

    $response = $client->request(Zend_Http_Client::POST); 
}

我认为您想要使用这段代码的目的是向此网址提交帖子请求并同时将浏览器重定向到那里。
这应该是可能的,根据我能发现它应该像$response->location一样简单,但我不能使它工作。 ->location应该是一个标题元素,但我找不到它。也许我们的其他大师可以提供帮助。