मैं इस पूरे दिन कोई सफलता नहीं कर रहा हूं। कृपया इस मुद्दे को हल करने में मदद करें। गुगलिंग पर मैंने पाया कि कई उपयोगकर्ताओं को यह समस्या थी लेकिन कहीं भी मुझे कोई समाधान नहीं मिला।क्यूटी HTTP पोस्ट समस्या जब सर्वर को कुकीज़ की आवश्यकता होती है
मैं (ताकि क्यूटी पेशेवरों मदद कृपया, मेरा प्रश्न एक अजगर सवाल नहीं है) मैं पहले से ही कर रही है कि अजगर में की कोशिश की है क्यूटी सी ++ & में HTTP पोस्ट करने के लिए कोशिश कर रहा हूँ .. मुझे पता है, मैं कहीं गलत हूँ कुकीज़ और सभी को संभालना, तो कृपया मदद करें। कृपया संभावित समाधान प्रदान करें।
पायथन में, कोड साफ़ और सरल है। मैंने त्रुटि को संभालने और इसे आसान बनाने के लिए सभी अतिरिक्त चीजें छीन ली हैं।
url = 'http://www.example.com/'
data = 'username=abc&password=passwd'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
usock = opener.open(url, data)
#>>>>>> NOW, I have the cookiejar <<<<<<<<<
opener.addheaders = [('Referer','http://www.example.com/xyz.php'),('User-Agent','Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20091020 Ubuntu/9.10 (karmic) Firefox/3.5.3 GTB7.0')]
data_to_send = 'ABCDEFGH'
url_send = "http://www.example.com/xyz.php"
send = opener.open(url_send,data_to_send)
क्यूटी समतुल्य मैंने बनाया: -
void SmsSender::sendToMyCantos()
{
manager = new QNetworkAccessManager(this);
manager->setCookieJar(new QNetworkCookieJar(manager));
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
request.setUrl(QUrl("http://www.mycantos.com"));
postData.append("username=abc&password=passwd");
manager->post(request,postData);
//>>>>>> So, I feel that I have CookieJar now to make POST <<<<<<<
request.setRawHeader("Referer","http://www.example.com/xyz.php");
request.setRawHeader("User-Agent","Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20091020 Ubuntu/9.10 (karmic) Firefox/3.5.3 GTB7.0");
postData.clear();
postData.append("ABCDEFGH");
request.setUrl(QUrl("http://www.example.com/xyz.php"));
manager->post(request,postData);
}
अब मुद्दा है कि मैं क्यूटी में भी ऐसा ही करने में सक्षम नहीं हूँ। समस्याओं का सामना करना पड़ रहा हूँ:
- हैंडलिंग कुकीज़
- रीडायरेक्ट हैंडलिंग (HTTP 302)
- कुकीज़ बनाए रखना भविष्य पोस्ट
यह सब अजगर में स्वतः किया जाता है बनाने के लिए। नीचे, कोड सीधे संबंधित नहीं है, लेकिन मैं इस कोडित पोस्ट में रीडायरेक्ट .. कोड very similar to the link I used to make it..
QUrl SmsSender::redirectUrl(const QUrl& possibleRedirectUrl,
const QUrl& oldRedirectUrl) const {
//Checking infinite resursions
QUrl redirectUrl;
if(!possibleRedirectUrl.isEmpty() &&
possibleRedirectUrl != oldRedirectUrl) {
redirectUrl = possibleRedirectUrl;
}
return redirectUrl;
}
void SmsSender::replyFinished(QNetworkReply *reply)
{
QVariant possibleRedirectUrl =
reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
QVariant data_size = reply->header(QNetworkRequest::ContentLengthHeader);
qDebug()<<data_size.toFloat();
qDebug()<<manager->cookieJar()->cookiesForUrl(QUrl("http://www.example.com"));
/* We'll deduct if the redirection is valid in the redirectUrl function */
_urlRedirectedTo = this->redirectUrl(possibleRedirectUrl.toUrl(),
_urlRedirectedTo);
/* If the URL is not empty, we're being redirected. */
if(!_urlRedirectedTo.isEmpty()) {
QString text = QString("SmsSender::replyFinished: Redirected to ")
.append(_urlRedirectedTo.toString());
qDebug(text.toAscii());
// Do again in case we have more redirections
this->_qnam->get(QNetworkRequest(_urlRedirectedTo));
}
else
{
QString text = QString("SmsSender::replyFinished: Arrived to ")
.append(reply->url().toString());
qDebug(text.toAscii());
_urlRedirectedTo.clear();
}
}
QNetworkAccessManager* SmsSender::createQNAM() {
QNetworkAccessManager* qnam = new QNetworkAccessManager(this);
/* We'll handle the finished reply in replyFinished */
connect(qnam, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
return qnam;
}
यह मेरा क्यूटी का उपयोग करके ऐप्लिकेशन बनाने के लिए है, तो मेरे साथ सहन कृपया पहला प्रयास है अगर इसकी सही रूप में मानकों के अनुसार नहीं। –