Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
1

HTTP Post запрос в Qt Android

30.07.2018, 08:36. Показов 807. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Qt 5.10.1
OS Windows 7
Разработка под Андроид

Добрый день, пишу программу на Qt под Андроид. Отправляю POST запросы на сайт для авторизации. Программа нормально работает когда я ее запускаю на компьютере. Идет пост запрос и обратно получаю ответ. Но когда я ее запускаю на Андроиде(любой) то мне ничего не приходит. Кто может подсказать в чем проблема и как ее решить?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "enter_system.h"
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QFile>
#include <QUrl>
#include <QDebug>
#include <QHttpPart>
#include <QByteArray>
 
Enter_system::Enter_system(QObject *parent): QObject(parent){}
 
void Enter_system::getData(QString myMail, QString myPassword){
    QString l1 = "j_username=" + myMail;
    QString p1 = "j_password=" + myPassword;
    QString result = l1 + "&" + p1;
 
    QByteArray array;
    array.append(result);
    apiUrl =  "https://**************";
    requestString = array;
    QNetworkRequest request(apiUrl);
    request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/x-www-form-urlencoded"));
    reply = manager.post(request, requestString);
    connect(reply, SIGNAL(finished()),this, SLOT(getReplyFinished()));
    connect(reply, SIGNAL(finished()), this, SLOT(readyReadReply()));
}
 
void Enter_system::getReplyFinished(){
    reply->deleteLater();
}
 
void Enter_system::readyReadReply(){
    QString answer = QString::fromUtf8(reply->readAll());
    QList<QByteArray> headerList = reply->rawHeaderList();
    QByteArray head;
    foreach(head, headerList) {
        qDebug() << head << ":-" << reply->rawHeader(head);
    }
    qDebug() <<"headerList = " <<head << ":-" << reply->rawHeader(head);
    QString zapros = reply->rawHeader(head);
      if(zapros == "*********/login"){
        myOpen = "Данный пользователь онлайн";
        sendToOpen(myOpen);
        qDebug()<<"Данный пользователь онлайн";
    }else{
        if(zapros == "http://*****/pf/")
        {
            myOpen = "true";
            sendToOpen(myOpen);
            qDebug()<<"Авторизация прошла успешно";
        }
        else{
            myOpen = "Отсутствует подключение к сети";
            sendToOpen(myOpen);
            qDebug()<<"Отсутствует подключение к сети"<< zapros;
        }
    } 
}
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef ENTER_SYSTEM_H
#define ENTER_SYSTEM_H
#include <QObject>
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QFile>
#include <QUrl>
#include <QDebug>
#include <QHttpPart>
 
class Enter_system:public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString myMail       READ  getSomePropertyMail       WRITE setSomePropertyMail       NOTIFY sendToMail)     //Для обменна даными о пройденном пути
    Q_PROPERTY(QString myPassword   READ  getSomePropertyPassword   WRITE setSomePropertyPassword   NOTIFY sendToPassword)     //Для обменна даными о времени записи трека
    Q_PROPERTY(QString myOpen       READ  getSomePropertyOpen       WRITE setSomePropertyOpen       NOTIFY  sendToOpen)     //Для отправки текстового сообщеиня в QML
 
public:
 
    explicit Enter_system(QObject *parent = 0);
    QString getSomePropertyMail()const;                                                         //Для обменна даными о времени t
    QString getSomePropertyPassword()const;                                                          //Для обменна даными о расстоянии m
    QString getSomePropertyOpen()const;
    void setSomePropertyOpen(const QString &);
    void setSomePropertyMail(const QString &);                                                  //Для обменна даными о времени t
    void setSomePropertyPassword(const QString &);                                                   //Для обменна даными о расстоянии m
 
signals:
 
    void sendToPassword(QString);
    void sendToMail(QString);                                                                    //Сигналы для передачи пути                                                                      //Сигналы для передачи данных о времени
    void sendToOpen(QString);
    void finished();
    void readyRead();
 
 
public slots:
    void getReplyFinished();
    void readyReadReply();
    void getData(QString myMail, QString myPassword);
 
private:
 
    QString myPassword;
    QString myMail;    
    QString myOpen;
 
QString result;
    QNetworkAccessManager   manager;
    QNetworkReply           *reply;
    QUrl                    apiUrl;
    QByteArray              requestString;
    QList<QByteArray>       headerList;
 
};
#endif // ENTER_SYSTEM_H
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2018, 08:36
Ответы с готовыми решениями:

HTTP post android
Просмотрел множество статей об этом, пытался использовать простейший пример HttpRequest, но все...

Android query и HTTP Post
Добрый день. Очень уж понравилась библиотека. Но ни как не получается передать корректный POST...

HTTP запрос и POST
Нужно сделать запрос методом POST, делаю так: var val1 = 1; var val2 = 2; var xmlHttpReq = new...

HTTP-POST запрос.
Ниже приведенный код отправляет POST запрос. Проблема в том, что в ответ принимаются не все...

3
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
30.07.2018, 09:28 2
попробуйте создать еще один сайт и проверить, поступают ли запросы к этому сайту
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
30.07.2018, 09:52  [ТС] 3
Если программа запущена на компьютере то она идет и принимает, на Android'э нет(
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
30.07.2018, 13:52 4
а сайты на андроиде открываются, яндекс например?
0
30.07.2018, 13:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2018, 13:52
Помогаю со студенческими работами здесь

HTTP POST запрос и параллельность
Запускаю 5 потоков одновременно и выполняю в них следующий код: WebRequest...

HTTP Post запрос Java
Здравствуйте, подскажите в чем проблема? Необходимо реализовать передачу параметров от Клиента...

[MFC]HTTP POST запрос
Здравствуйте! Есть такой алгоритм пост запроса на сервер Код: CString strHeaders =...

HTTP запрос методом post и передача данных
Здравствуйте уважаемые программисты! Я написал программу на с++, которая отправляет http запросы...

Http POST запрос, как правильно написать
Добрый день, мне нужно отправить данные на сервер, посредством http post запросом, нужно добавить...

Русский Post запрос в базу через http
Кто в курсе этого метода связи с БД на удаленном сервере, как через POST отправить переменные с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru