आज मैं इस अजीब त्रुटि के दौरान 'lib curl' का उपयोग करके कुछ कोशिश कर रहा था, मुझे इसके लिए कोई समाधान नहीं मिला, क्या आप इसे समझने में मेरी सहायता कर सकते हैं?php curl - अनुरोध को खंडित किया जाना चाहिए या सामग्री की लंबाई
<?php
set_time_limit(0);
class cURL
{
var $content;
var $cookie;
var $headers = array();
var $ch;
var $data;
var $info;
var $httpcode;
var $proxy_ip;
var $proxy_port;
var $cookie_f;
function __construct($cookie = '')
{
if (!empty($cookie)) {
$this->cookie_f = $cookie;
}
}
function setproxy($proxy)
{
list($ip, $porta) = explode(":", $proxy);
$this->proxy_ip = $ip;
$this->proxy_port = $porta;
}
function setcookie($cookie)
{
$this->cookie = $cookie;
}
function open($type, $url)
{
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($this->ch, CURLOPT_HEADER, true);
//curl_setopt($this->ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded", "Content-length: 216"));
curl_setopt($this->ch, CURLOPT_ENCODING, "");
curl_setopt($this->ch, CURLOPT_COOKIEFILE, getcwd() . '/cookies.cookie');
curl_setopt($this->ch, CURLOPT_COOKIEJAR, getcwd() . '/cookies.cookie');
curl_setopt($this->ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18");
if (strtolower($type) == 'post') {
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($this->ch, CURLOPT_POST, 1);
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->data);
curl_setopt($this->ch, CURLOPT_HEADER, true);
}
$this->content = curl_exec($this->ch);
curl_close($this->ch);
return $this->content;
}
}
?>
<?php
$curll = New cURL;
$curll ->setCookie = "cookies.cookie";
$curll ->data = "username=user&password=pass&IsSyncUp=&FacebookAssociation=&SNAccessToken=";
$curll ->open("POST", "http://www.website.com");
$curll ->data = '__EVENTTARGET=ctl00$ctl00$cphRoblox$cphMyRobloxContent$lbSend&ctl00$ctl00$cphRoblox$cphMyRobloxContent$rbxMessageEditor$txtSubject=AAAAAAAAA&ctl00$ctl00$cphRoblox$cphMyRobloxContent$rbxMessageEditor$txtBody=BBBBBBBBB';
$curll ->open("POST", "http://www.website.com/My/PrivateMessage.aspx?RecipientID=20815603");
echo $curll ->content;
?>
तो, मेरे से त्रुटि आई थी:
HTTP/1.1 302 मिले कैश-नियंत्रण: निजी सामग्री प्रकार: text/html; charset = utf-8 स्थान: /Login/Default.aspx?ReturnUrl=%2fMy%2fPrivateMessage.aspx%3fRecipientID%3d20815603 & प्राप्तकर्ता आईडी = 20815603 सर्वर: माइक्रोसॉफ्ट-आईआईएस/7.0 सेट-कुकी: आरबीएक्स-आईपी =; पथ = /; केवल Http सेट-कुकी: RBXSource = rbx_acquisition_time = 10/14/2011 3:32:12 PM पर & rbx_acquisition_referrer = http: //www.website.com/My/PrivateMessage.aspx RecipientID = 20,815,603 & rbx_medium = प्रत्यक्ष & rbx_source = www .website.com & rbx_campaign = & rbx_send_info = 0; समाप्ति = सूर्य, 13-नवंबर -2011 21:32:12 जीएमटी; पथ =/एक्स-एएसपीनेट-संस्करण: 4.0.3031 9 एक्स-संचालित-द्वारा: एएसपी.नेट पी 3 पी: सीपी = "सीएओ डीएसपी कॉर कुरा एडीमा देवा हमारा इंडिया फाई ओएनएल यूएनआई कॉम एनएवी इंट डेम प्री" तिथि: शुक्र, 14 अक्टूबर 2011 20:32:12 जीएमटी सामग्री-लंबाई: 224 HTTP/1.1 411 लंबाई आवश्यक सामग्री-प्रकार: पाठ/एचटीएमएल; charset = us-ascii सर्वर: माइक्रोसॉफ्ट-एचटीटीपीआई/2.0 दिनांक: शुक्र, 14 अक्टूबर 2011 20:32:12 जीएमटी कनेक्शन: बंद सामग्री-लंबाई: 344
लंबाई आवश्यक HTTP त्रुटि 411. अनुरोध को बंद कर दिया जाना चाहिए या कंटेंट की लम्बाई।
तो मेरी समस्या थी "अनुरोध को खंडित किया जाना चाहिए या सामग्री की लंबाई होनी चाहिए।" मेरा पोस्ट 'लाइव HTTP शीर्षलेख' (मोज़िला)
का उपयोग कर ब्राउज़र पोस्ट से परामर्श करके बनाया गया था यदि मैं सेकेंड डेटा & खोलता/पोस्ट करता हूं तो यह ठीक काम करता है। सेकेंड डेटा और ओपन/पोस्ट समस्या थी।
क्या कोई मेरी मदद कर सकता है? पढ़ने के लिए धन्यवाद।
FYI: CURLOPT_CUSTOMREQUEST अनुरोध/अनुरोध के अलावा अनुरोधों के लिए है। यह तब होता है जब आपको हेड, पुट इत्यादि करने की ज़रूरत होती है ... CURLOPT_POST का उपयोग कर पोस्ट मोड में कर्ल डालता है। –