1

$site->setParameterPostアクションにデータを投稿するためにandを使用 $site->request('POST')->getBody()しますが、 の 1 つのパラメーターsetParameterPostは非常に大きなデータであり、post メソッドを介してデータを送信しません。私に何ができる?

 $config = array('adapter'   => 'Zend_Http_Client_Adapter_Curl' );

 $site = new Zend_Http_Client('http://somewhere.tld/api/news', $config);
 $site->setParameterPost(array(
        'news' => $news, //very big data, without it data send properly
        'modelName' => 'somemodel',
        'method' => 'somemethod',
        'key' => 'something',
        'siteName' => $sitename,
            ));

$sitedata = $site->request('POST')->getBody();
4

1 に答える 1

1

PUT メソッドでのみ許可されるストリーミング リクエストを使用する必要があります。

$http_client = new Zend_Http_Client ('http://something.some/thing');
$http_client->setConfig (array (
    'adapter' => 'Zend_Http_Client_Adapter_Curl',
    'timeout' => 180
));

$file = fopen ('news.dat', 'r'); // put all your news to the file beforehand
$http_client->setRawData ($file);
$http_client->setParameterPost (array (
    'modelName' => 'somemodel',
    'method' => 'somemethod',
    'key' => 'something',
    'siteName' => $sitename
));
$response = $http_client->request ('PUT');

サーバー側では、ビッグデータにアクセスできます

fopen ("php://input", "r");
于 2012-09-04T07:16:33.430 に答える