سؤال

أحاول القيام بعميل بقية بسيطة للغاية في كيو تي، لكنني أحصل على "خطأ غير معروف" في ردي. أيضا عندما أقوم بالتقاط حزمة، أرى 0 حزم يتم إرسالها إلى الخادم.

الرمز الخاص بي هو:

giveacodicetagpre.

ونتائجي هي: خطأ غير معروف.

التطبيق البسيط يترجم دون أخطاء أو تحذيرات.

يمكن لأي شخص أن يرى أي مشاكل؟

خرجي المتوقع هو "Hello Bob" وتم اختباره بنجاح مع عميل PHP باستخدام Curl.

هل كانت مفيدة؟

المحلول

يبدو أنك إساءة استخدام api qtnetwork. لديك على الأقل المشكلات التالية المستمرة:

  • أنت بما في ذلك وحدة Qtnetwork كاملة بدلا من الفئات الضرورية.

  • يمكنك استدعاء errorstrin () قبل انبعاث إشارة الخطأ (). هذا ليس جيدا، وما تراه من المتوقع أن الحالة الافتراضية غير معروفة حسب الوثائق.

  • لا تتواصل مع الإشارة النهائية ل ASYNC API. يعد QNetworkreply المرتجعة مجرد مؤشر يمكنك استخدامه لاحقا للوصول إلى الأعضاء، لكنه لا يحتوي بعد على الرد الذي في هذه المرحلة.

  • أنت تقوم بمثابة إنشاء qcoreapplication، ولكن ليس في الواقع استخدامه لتشغيل حلقة حدث أمر ضروري لعملية ASYNC للحصول على الرد. يمكنك دائما حظر، أيضا، ولكن هذا لا ينصح حقا معظم الوقت.

  • أنت تستخدم مؤشر ل Qnetworkascessmanager هنا دون داع.

  • أنت تستخدم أحرف كبيرة من الكائنات الكثيرة لاسم متغير منتظم.

يمكنك كتابة بعض الكود مثل أدناه. سيكون أبسط استخدام Lambda مع C ++ 11، لكنني أفترض أنك بحاجة إلى الحصول عليها مع المترجمين المسبقين.

main.cpp

giveacodicetagpre.

main.pro

giveacodicetagpre.

بناء وتشغيل

giveacodicetagpre.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top