मैं अपनी समस्या के समाधान के लिए सभी स्टैक ओवरफ्लो और Google को खोज रहा हूं।Zend_HTTP_Client मुझे किसी भी डेटा को पोस्ट करने दें
मैंने ज़ेंड फ्रेमवर्क - Project1
और Project2
के साथ दो परियोजनाएं बनाई हैं - और मैं उनमें से एक पर वेब सेवाएं लागू करना चाहता हूं। विचार है कि JSON-string को Project1
पर भेजना और POST का उपयोग करके उस चर के साथ जुड़े सभी विवरणों के साथ JSON वापस प्राप्त करना है। अब मैं Project2
पर एक TestController बनाया है:
public function indexAction(){
$uri = 'http://project1.com/WebService/data';
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(CURLOPT_FOLLOWLOCATION => true),
);
$client = new Zend_Http_Client($uri, $config);
$request = $client->request('POST');
print_r($request->getBody());
exit();
}
ऊपर कोड काम करता है। यह Project1
नियंत्रक से पढ़ता है और मुझे जो कुछ भी गूंजता है उसका आउटपुट देता है। लेकिन जब मैं कोशिश यह:
public function indexAction(){
$uri = 'http://project1.com/WebService/data';
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(CURLOPT_FOLLOWLOCATION => true),
);
$client = new Zend_Http_Client($uri, $config);
$data = array(
'userID' => 'TEST TEST',
'value' => 1,
'description' => 'ABCDEFG',
);
$request = $client->request('POST');
$json = json_encode($data);
$client->setRawData($json, 'application/json')->request('POST');
exit();
}
और सर्वर साइड जब मैं dataAction
अंदर प्रदर्शित की कोशिश पर:
public function dataAction(){
var_dump($this->getRequest()->getParam('var-name'));
var_dump($_POST);
die();
}
मैं इस का उत्पादन मिलता है: शून्य सरणी (0) {} .... जब मैं क्लाइंट पक्ष पर कोशिश करता हूं तो मुझे वही आउटपुट मिलता है। इसके अलावा उल्लेख करने के लिए .. मैंने php: // इनपुट फ़ाइल खोलने का भी प्रयास किया लेकिन एक खाली स्ट्रिंग मिली ...
मुझे क्या याद आ रही है ??? मैंने खुद को सुबह से खोजना निराश किया है लेकिन मुझे कोई समाधान नहीं मिला है।
प्रतिक्रिया के लिए अग्रिम धन्यवाद।
त्वरित प्रतिक्रिया प्राप्त करने में खुशी हुई। जैसा कि आपने कहा था कि मैंने उस कोड का उपयोग करने की कोशिश की लेकिन मुझे var_dump ($ json) और bool (false) के साथ var_dump ($ post) के साथ एक पूर्ण मिला; और मैं आपकी पोस्ट जेसन से पार्स नहीं कर रहा हूं। लेकिन जब मैं इसे आज़माता हूं: $ क्लाइंट-> setRawData ($ परीक्षण, 'स्ट्रिंग') -> अनुरोध ('पोस्ट'); जहां परीक्षण एक स्ट्रिंग है, फिर भी यह मुझे अभी भी कुछ भी नहीं देता है? – 1291
यकीन नहीं है कि यह आपके लिए क्यों काम नहीं करता है। मैंने कोड में नियंत्रक कार्यों दोनों के लिए पूर्ण कोड जोड़ा। अनुरोध के लिए आपके पास जो कुछ था, वह ज्यादातर कॉपी/पेस्ट है। उम्मीद है कि आप वह काम कर सकते हैं। सुनिश्चित करें कि आप नवीनतम जेडएफ संस्करण 1.12.0 का उपयोग कर रहे हैं। मैंने 1.11.13 के साथ परीक्षण किया और यह उस संस्करण के साथ भी काम किया। – drew010
स्पष्ट रूप से मैं डेटा को सही तरीके से नहीं भेज रहा था ... यही वह है जो मैंने बदला: $ data = array ('num' => '1234'); $ डेटास्ट्रिंग = ""; ... सर्वर पक्ष पर मैंने यह किया: $ यह-> अनुरोध-> getParam ('num') $ this-> json-> sendData ($ डेटा); .. और यह अब काम करता है :)! सभी मदद के लिए धन्यवाद! इसकी प्रशंसा करना! – 1291