نقل قول: ارسال اطلاعات به اینترنت
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
من چیزی متوجه نشدم.
میشه یه نمونه ساده قرار بدید !
خیلی ممنونم.
نقل قول: ارسال اطلاعات به اینترنت
این مثال ساده (به فایل .pro مثل سوال قبلی QT += network هم اضافه کن ) (data اون اطلاعاتی هست که می خواهی post کنی )
#include <QApplication>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QNetworkAccessManager manager;
QByteArray data;
data.push_back("data=text");
QNetworkRequest request(QUrl("http://www.test.com/"));
request.setHeader(QNetworkRequest::ContentTypeHead er,
"application/x-www-form-urlencoded");
manager.post(request,data);
QObject::connect(&manager, &QNetworkAccessManager::finished,[](QNetworkReply* reply){
qDebug() << reply->readAll();
});
return a.exec();
}
نقل قول: ارسال اطلاعات به اینترنت
عجب !! داخل اون کد بالا جلوی QUrl این هست : http://www.test.com نمی دونم چرا خودکار با <a href="http://www.test.com/" target="_blank">http://www.test.com/</a>")); جایگزین میشه هرچی هم بین خطوط فاصله گذاشتم حذف شده !!!! indenet کد هم ریخته به هم !! من که هرکار کردم درست نشد !!
سایت برنامه نویسی ادیتورش در حد این سایتای دانلود فیلم و سریال هم نیست اعصاب نمیزاره به خدا آدم 2 خط تو این سایت مینویسه اندازه نوشتن 1 فصل یک کتاب وقت باید بزاره
نقل قول: ارسال اطلاعات به اینترنت
متاسفانه کار نکرد ! :ناراحت:
نقل قول: ارسال اطلاعات به اینترنت
من نمی دونم دقیقا با چه سایتی تست کردید
من اینو تست کردم درست بود :(محتویات فایل test.html که در محل پروژه ساخته میشه رو ببینید )
http://paste.ofcode.org/U6qjs7MVMTynKc3956V3fU
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
این پروژه ای هست که من نوشتم :
http://0up.ir/up8/guest/9-Qt-Send-Data-To-Web-Page.rar
محتویات فایل qt-server.php هم اینه :
<?php
if(isset($_POST['id']) && !empty($_POST['id'])) {
$id = 'Your ID Is : ' . $_POST['id'];
file_put_contents("qt-data.txt", $id);
}
اما فایلی با نام qt-data.txt ساخته نمیشه !!
میشه راهنمایی کنید.
نقل قول: ارسال اطلاعات به اینترنت
بخاطر این هست که وقتی اطلاعات رو میفرستید به سرور نباید شی کلاس accessManager پاک بشه . شی رو بصورت فیلد private کلاس بزارید . (یا از new استفاده کنید )
این فایل .cpp که من الان تست کردم : (قبل از تست کردن url ای که من دادم رو عوض کنید )
http://paste.ofcode.org/s87GTC8z5LhGaVWKwF8ZbB
اینم .h :
http://paste.ofcode.org/38wcLUqJChJxczmGQUNMpxs
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
خیلی ممنونم. کار کرد !! :قلب:
فقط یه سوال دیگه !! :لبخند:
این کد رو ببینید :
QObject::connect(&manager, &QNetworkAccessManager::finished,[](QNetworkReply* reply){
QString result_q = reply->readAll();
});
this->ui->textEdit->setText(result_q);
چرا از این کد خطا میگیره ؟؟!!!
http://8pic.ir/images/gvz9unh954ca24shzpju.png
نقل قول: ارسال اطلاعات به اینترنت
چون [] یک لامبدا میسازه لامبدا هم مثل توابع متغیر هایی که داخلشون تعریف میشه خارج از lambda قابل استفاده نیستن این طوری بنویس :
QObject::connect(&manager, &QNetworkAccessManager::finished,[this](QNetworkReply* reply){
this->ui->textEdit->setText(reply->readAll());
});
ضمنا داخل [] نوشتیم this یعنی این که از this بشه داخل بدنه lambda استفاده کرد حالت عادی نمیشه .
در مورد lambda ها داخل این لینک توضیحات کاملی هست http://www.7khatcode.com/3180/%D9%88...%A7%DB%8C-c-11
1 ضمیمه
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
چون [] یک لامبدا میسازه لامبدا هم مثل توابع متغیر هایی که داخلشون تعریف میشه خارج از lambda قابل استفاده نیستن این طوری بنویس :
QObject::connect(&manager, &QNetworkAccessManager::finished,[this](QNetworkReply* reply){
this->ui->textEdit.setText(reply->readAll());
});
ضمنا داخل [] نوشتیم this یعنی این که از this بشه داخل بدنه lambda استفاده کرد حالت عادی نمیشه .
در مورد lambda ها این لینک رو بخونید
http://www.7khatcode.com/3180/%D9%88...how=3180#q3180
این ارور رو میده :
ضمیمه 123106
حالا اگر بخوام result رو درون یه متغییر QString بریزم باید چیکار کنم ؟؟!!
نقل قول: ارسال اطلاعات به اینترنت
ویرایش کردم پست قبلی رو . (بجای . باید -> میزاشتم )
اگر بخوای داخل String بریزی یک متغیر private داخل کلاس تعریف کن بعد داخل lambda بهش مقدار بده .
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
ویرایش کردم پست قبلی رو . (بجای . باید -> میزاشتم )
اگر بخوای داخل String بریزی یک متغیر private داخل کلاس تعریف کن بعد داخل lambda بهش مقدار بده .
کار میکنه ، اما نمیدونم چرا باید دو بار بر روی دکمه کلیک کنم تا متن درون textEdit قرار بگیره :
http://0up.ir/up8/guest/5-Qt-Send-Data-To-Web-Page.rar
نقل قول: ارسال اطلاعات به اینترنت
به این شکلی که نوشتید اشتباه هست
این خط :
this->ui->textEdit->setText(result);
داخل بدنه تابع هست نه lambda و قبل از این که نتیجه از سرور برگرده اجرا میشه (این جا لامبدا زمانی اجرا میشه که reply از سرور برگرده )
دفعه اول چون result خالی هست چیزی نوشته نمیشه ولی دفعات بعدی چون احتمالا جواب از سرور برگشته نتیجه داخلش ذخیره شده .
انتقالش بدین به داخل لامبدا درست میشه .
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
به این شکلی که نوشتید اشتباه هست
این خط :
this->ui->textEdit->setText(result);
داخل بدنه تابع هست نه lambda و قبل از این که نتیجه از سرور برگرده اجرا میشه (این جا لامبدا زمانی اجرا میشه که reply از سرور برگرده )
دفعه اول چون result خالی هست چیزی نوشته نمیشه ولی دفعات بعدی چون احتمالا جواب از سرور برگشته نتیجه داخلش ذخیره شده .
انتقالش بدین به داخل لامبدا درست میشه .
خیلی ممنونم. درست شد.
فقط یه مشکلی هست. اگر من دوباره بر روی دکمه کلیک کنم ، متن داخل textEdit خالی میمونه !!!
چکار کنم که هر دفعه که کلیک میشه این مشکل به وجود نیاد !!!
نقل قول: ارسال اطلاعات به اینترنت
اول تابع( و خارج از لامبدا) اینو بنویسید :
ui->textEdit->clear();
تا محتوای textEdit پاک بشه (البته اگر منظورتون رو درست متوحه شده باشم ؟! )
نقل قول: ارسال اطلاعات به اینترنت
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
رضاس1000
منظورت از لامبدا چی هست؟
این جا قبلا توضیح داده شده (قسمت lambda functions/expressions
http://www.7khatcode.com/3180/%D9%88...%A7%DB%8C-c-11
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
omid_kma
اول تابع( و خارج از لامبدا) اینو بنویسید :
ui->textEdit->clear();
تا محتوای textEdit پاک بشه (البته اگر منظورتون رو درست متوحه شده باشم ؟! )
نه کار نکرد.
مثلا وقتی که برای اول روی دکمه کلیک میکنی اطلاعات رو نشون میده. اما اگر دوباره بعدش یه بار دیگه روی دکمه کلیک کنی متن داخل editText خالی میشه و هیچی توش نمایش داده نمیشه !!!
نقل قول: ارسال اطلاعات به اینترنت
اینو امتحان کن ببین درسته :http://paste.ofcode.org/h7YmR47H25SVAYnWgMHyAK
اگر نبود کدت رو بزار
نقل قول: ارسال اطلاعات به اینترنت
نقل قول:
نوشته شده توسط
AliRezaBeytari
سلام دوستان.
خیلی مزاحم میشم !!! :لبخند: ببخشید !!! اگر میشه به این سوالم هم جواب بدید. خیلی ممنونم.
مثلا ما یه صفحه PHP با آدرس زیر داریم :
http://site.com/index.php
حالا من میخوام بدونم چطور میتونم با استفاده از Qt مقادیری رو با متود Post به این صفحه ارسال کنم ؟؟!!!
ممنونم میشم اگر راهنمایی کنید. :قلب:
خیلی جالبه که عنوان این تاپیک رو گذاشتی آموزش.:متعجب: