c++ - Request JSON in Qt -


firstly before start post, whant tell read topic

correct format http post using qnetworkrequest

i using idea me not working. read few other topic time not have solve. may therefore because somethig missed (for sure).

now show request work html file

<html> <body> <form method="post" action="http://192.168.1.108/acces.cgi"> <input type="text" name="json" value='{"method":{"ok":"get","number":1}}' size="100"> <input type="submit"> </form> </body> </html> 

after send request answer in browser. request json correct sure.

now whant try send same request using qt have written below code warring

qt.network.ssl: qsslsocket: cannot resolve sslv2_client_method qt.network.ssl: qsslsocket: cannot resolve sslv2_server_method 

and code

qurl url("http://192.168.1.108/acces.cgi"); // request local host qnetworkrequest *request = new qnetworkrequest(url); request>setheader(qnetworkrequest::contenttypeheader,"application/json"); manager = new qnetworkaccessmanager(); qobject::connect(manager,signal(finished(qnetworkreply*)),this,slot(handleddatafromnetwork(qnetworkreply*)));  // prepare json string qbytearray array= "{\"method\":{\"ok\":\"get\",\"number\":\"1\"}}";  // , send reply = manager->post(*request, array);  // next wait signal , try recive in slot void myclass::handleddatafromnetwork(qnetworkreply *reply) {     qdebug() << "content" << reply->readall(); } 

but expect warrning not nothing more.

ps. sorry how looks code in qt not can correct preper better

edit: solved !!!

answer using qurlquery class. code should looks below:

qurl url("http://192.168.1.109/ask.cgi"); qurlquery query; query.setquery("json={\"ctrl\":{\"c":\"gd\",\"i\":6}}"); url.setquery(query); qnetworkrequest req(url);  qnetworkaccessmanager test;  qeventloop loop; connect(&test, signal(finished(qnetworkreply*)), &loop, slot(quit())); qnetworkreply * reply = test.get(req); loop.exec(); 

:)

this error:

qt.network.ssl: qsslsocket: cannot resolve sslv2_client_method 

is because qt can't find openssl. if you're on windows, you'll have openssl binaries , put them in same folder executable. if you're on linux, install openssl through package manager (apt-get install openssl debian-based systems).

also, if you're sending json data, @ qts json support, make easier send/parse json data.


Comments

Popular posts from this blog

dns - How To Use Custom Nameserver On Free Cloudflare? -

python - Pygame screen.blit not working -

c# - Web API response xml language -