bool NetHttpClient::sendHttpRequest(unsigned int unMsgType,unsigned int unMsgCode,CSJson::Value* msgBady,int nPlayerId)
{
	//是否游客登入
// 	if (CPlayerInfoMan::sharedInstance().getLoinStatus())
// 		return false;
	CCString strUrl = URL_REQUEST;
#ifdef GAME_TEST
	strUrl = URL_REQUEST_TEST;
#endif 
	//if(strcmp(GET_STRING_CSV(999999997),"1") == 0)
	CCTransitionScene* pScene = dynamic_cast<CCTransitionScene*>(CCDirector::sharedDirector()->getRunningScene());
	if(pScene == NULL)
		ShowDlg(CGameLayerLoading,CCDirector::sharedDirector()->getRunningScene(),10000);
	if(msgBady)
	{
		CSJson::Value& body = (*msgBady);
		if(nPlayerId == -1)
			nPlayerId = (CPlayerInfoMan::sharedInstance().getPlayerInfo().nId);
		body["playerid"] = CSJson::Value(nPlayerId);
		return sendHttpRequest(new CRequestPacket(unMsgType,unMsgCode,*msgBady),strUrl.getCString());
	}
	else
	{
		CSJson::Value tempNull;
		if(nPlayerId == -1)
			nPlayerId = (CPlayerInfoMan::sharedInstance().getPlayerInfo().nId);
		tempNull["playerid"] = CSJson::Value(nPlayerId);
		return sendHttpRequest(new CRequestPacket(unMsgType,unMsgCode,tempNull),strUrl.getCString());
	}
		
}
void NetHttpClient::XQsendHttpRequest(unsigned int unMsgType,unsigned int unMsgCode,CSJson::Value* msgBady,CCObject* target1, SEL_MyEvent callfun){
    isXQ = true;
//    NetCallBack::setCallBack(target1, callfun);
    target = target1;
    callback = callfun;
    unMsgCode_xq = unMsgCode;
    unMsgType_xq = unMsgType;
    if(msgBady->isMember("playerid"))
        sendHttpRequest(unMsgType, unMsgCode, msgBady,(*msgBady)["playerid"].asInt());
    else
        sendHttpRequest(unMsgType, unMsgCode, msgBady);
  
}
Exemplo n.º 3
0
void ParserHafasBinary::searchJourney(const QString &departureStation, const QString &arrivalStation, const QString &viaStation, const QDate &date, const QTime &time, Mode mode, int trainrestrictions)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::searchJourneyRequest;
    hafasContext.seqNr = "";
    lastJourneyResultList = NULL;

    QString trainrestr = getTrainRestrictionsCodes(trainrestrictions);

    QUrl uri = baseBinaryUrl;
    uri.addQueryItem("start", "Suchen");
    uri.addEncodedQueryItem("REQ0JourneyStopsS0ID", QUrl::toPercentEncoding("A=1@G=" + departureStation));
    uri.addEncodedQueryItem("REQ0JourneyStopsZ0ID", QUrl::toPercentEncoding("A=1@G=" + arrivalStation));

    if (!viaStation.isEmpty()) {
        uri.addQueryItem("REQ0JourneyStops1.0A", "1");
        uri.addQueryItem("REQ0JourneyStops1.0G", viaStation);
    }

    uri.addQueryItem("REQ0JourneyDate", date.toString("dd.MM.yyyy"));
    uri.addQueryItem("REQ0JourneyTime", time.toString("hh:mm"));
    uri.addQueryItem("REQ0HafasSearchForw", QString::number(mode));
    uri.addQueryItem("REQ0JourneyProduct_prod_list_1", trainrestr);
    uri.addQueryItem("h2g-direct", "11");
    sendHttpRequest(uri);
}
Exemplo n.º 4
0
void ParserResRobot::doSearchJourney(QUrl query)
#endif
{
    QUrl url = baseURL + QLatin1String("/trip");
    if (lastJourneySearch.mode == Arrival)
        query.addQueryItem("searchForArrival", "1");
    query.addQueryItem("key", journeyAPIKey);
    query.addQueryItem("originId", lastJourneySearch.from.id.toString());
    if (lastJourneySearch.via.valid)
        query.addQueryItem("viaId", lastJourneySearch.via.id.toString());
    query.addQueryItem("destId", lastJourneySearch.to.id.toString());
    query.addQueryItem("passlist", "0"); // We don't need any intermediate stops in the result
    query.addQueryItem("format", "json");
    QString formattedRestrictions(formatRestrictions(lastJourneySearch.restrictions));
    if (!formattedRestrictions.isEmpty())
        query.addQueryItem("products", formattedRestrictions);
    if (QLocale().language() == QLocale::Swedish)
        query.addQueryItem("lang", "sv");
    else if (QLocale().language() == QLocale::German)
        query.addQueryItem("lang", "de");
    else
        query.addQueryItem("lang", "en");

#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    qDebug() << "Searching for journey:" << url.toString();
    sendHttpRequest(url);
}
void ParserXmlVasttrafikSe::findStationsByCoordinates(qreal longitude, qreal latitude)
{
    qDebug() << "ParserXmlVasttrafikSe::findStationsByCoordinates(longitude=" << longitude << ", latitude=" << latitude << ")";

    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByCoordinatesRequest;

    QUrl uri(baseRestUrl + QLatin1String("location.nearbystops"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("authKey", apiKey);
    query.addQueryItem("format", "xml");
    query.addQueryItem("originCoordLat", QString::number(latitude));
    query.addQueryItem("originCoordLong", QString::number(longitude));
    query.addQueryItem("maxNo", QString::number(5));
#if defined(BUILD_FOR_QT5)
    uri.setQuery(query);
#else
    uri.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(uri);
}
Exemplo n.º 6
0
void ParserResRobot::findStationsByCoordinates(qreal longitude, qreal latitude)
{
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByCoordinatesRequest;

    QUrl url(journeyBaseURL + QLatin1String("StationsInZone.json"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("key", journeyAPIKey);
    query.addQueryItem("apiVersion", journeyAPIVersion);
    query.addQueryItem("centerX", QString::number(longitude));
    query.addQueryItem("centerY", QString::number(latitude));
    query.addQueryItem("radius", QString::number(nearbyRadius));
    query.addQueryItem("coordSys", "WGS84");
#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(url);
}
Exemplo n.º 7
0
void ParserResRobot::findStationsByName(const QString &stationName)
{
    lastStationSearch = stationName;
    if (stationName.length() < 2)
        return;
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByNameRequest;

    QUrl url(journeyBaseURL + QLatin1String("FindLocation.json"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("key", journeyAPIKey);
    query.addQueryItem("apiVersion", journeyAPIVersion);
    query.addQueryItem("from", stationName);
    query.addQueryItem("coordSys", "WGS84");
#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(url);
}
Exemplo n.º 8
0
void ParserResRobot::findStationsByName(const QString &stationName)
{
    lastStationSearch = stationName;
    if (stationName.length() < 2)
        return;
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByNameRequest;

    QUrl url(baseURL + QLatin1String("/location.name"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("key", journeyAPIKey);
    query.addQueryItem("input", stationName);
    query.addQueryItem("maxNo", "30"); // Max number of results
    if (QLocale().language() == QLocale::Swedish)
        query.addQueryItem("lang", "sv");
    else if (QLocale().language() == QLocale::German)
        query.addQueryItem("lang", "de");
    else
        query.addQueryItem("lang", "en");
    query.addQueryItem("format", "json");
#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(url);
}
Exemplo n.º 9
0
void ParserResRobot::findStationsByCoordinates(qreal longitude, qreal latitude)
{
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByCoordinatesRequest;

    QUrl url(baseURL + QLatin1String("/location.nearbystops"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("key", journeyAPIKey);
    query.addQueryItem("originCoordLat", QString::number(latitude));
    query.addQueryItem("originCoordLong", QString::number(longitude));
    query.addQueryItem("r", "1000"); // Radius in meters
    query.addQueryItem("maxNo", "30"); // Max number of results
    if (QLocale().language() == QLocale::Swedish)
        query.addQueryItem("lang", "sv");
    else if (QLocale().language() == QLocale::German)
        query.addQueryItem("lang", "de");
    else
        query.addQueryItem("lang", "en");
    query.addQueryItem("format", "json");
#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(url);
}
Exemplo n.º 10
0
void DJDownloadManager::download( const QString& remoteUrl, int fileType, quint16 id, const QString& name, bool resume, bool background, const QString& localFile )
{
	m_isDownloading	= true;
	
	QString host,path;
	ExtractHostAndPath( remoteUrl, host, path );
	djDebug() << "startDownload" << host << path;
	
	m_fileType		= fileType;
	m_id			= id;
	m_name			= name;
	m_resume		= resume;
	m_background	= background;
	m_localFile		= localFile;
	
	sendHttpRequest( m_file, path.section("/",-1), m_http, host, path );
	
	switch(fileType) {
	case Ini:
	case Hall:
	case Library:
	case Base:
	default:
		m_progress->setLabelText( tr("Downloading %1").arg(m_name) );
		break;
	}
	
	if ( background )
		m_progress->hide();
	else {
		m_progress->show();
	}
}
Exemplo n.º 11
0
void ParserXmlVasttrafikSe::getTimeTableForStation(const Station &currentStation, const Station &, const QDateTime &dateTime, Mode mode, int)
{
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::getTimeTableForStationRequest;

    m_timeTableForStationParameters.isValid = false;

    QUrl uri(baseRestUrl + (mode == Departure ? QLatin1String("departureBoard") : QLatin1String("arrivalBoard")));

#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("authKey", apiKey);
    query.addQueryItem("format", "xml");
    query.addQueryItem("date", dateTime.toString("yyyy-MM-dd"));
    query.addQueryItem("time", dateTime.toString("hh:mm"));
    query.addQueryItem("id", currentStation.id.toString());
    query.addQueryItem("useVas", "1");
    query.addQueryItem("useLDTrain", "0");
    query.addQueryItem("useRegTrain", "1");
    query.addQueryItem("useBus", "1");
    query.addQueryItem("useBoat", "1");
    query.addQueryItem("useTram", "1");
    query.addQueryItem("excludeDR", "1");
#if defined(BUILD_FOR_QT5)
    uri.setQuery(query);
#else
    uri.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(uri);
}
Exemplo n.º 12
0
void Parser131500ComAu::searchJourney(const QString &departureStation, const QString &arrivalStation, const QString &viaStation, const QDate &date, const QTime &time, Mode mode, int trainrestrictions)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::searchJourneyRequest;
    Q_UNUSED(viaStation);
    QString modeString = "dep";
    if (mode == Arrival) {
        modeString = "arr";
    }

    QString hourStr = "am";
    int hour = time.toString("hh").toInt();
    if (hour > 12) {
        hour = hour - 12;
        hourStr = "pm";
    }

    //Request one. (Station selection and receiving an up to date cookie.)
    QString fullUrl = "http://www.131500.com.au/plan-your-trip/trip-planner?session=invalidate&itd_cmd=invalid&itd_includedMeans=checkbox&itd_inclMOT_7=1&itd_anyObjFilter_origin=2&itd_anyObjFilter_destination=2&x=37&y=12";
    fullUrl.append("&itd_itdDate=" + date.toString("yyyyMMdd"));
    fullUrl.append("&itd_itdTimeHour=" + QString::number(hour));
    fullUrl.append("&itd_itdTimeMinute=" + time.toString("mm"));
    fullUrl.append("&itd_itdTripDateTimeDepArr=" + modeString);
    fullUrl.append("&itd_itdTimeAMPM=" + hourStr);
    fullUrl.append("&itd_name_origin=" + departureStation);
    fullUrl.append("&itd_name_destination=" + arrivalStation);

    // itd_inclMOT_5 = bus
    // itd_inclMOT_1 = train
    // itd_inclMOT_9 = ferry
    // itd_inclMOT_11 = school bus
    if (trainrestrictions == 0) {
      fullUrl.append("&itd_inclMOT_5=1&itd_inclMOT_1=1&itd_inclMOT_9=1");
    }
    if (trainrestrictions == 1) {
      fullUrl.append("&itd_inclMOT_5=1");
    }
    if (trainrestrictions == 2) {
      fullUrl.append("&itd_inclMOT_1=1");
    }
    if (trainrestrictions == 3) {
      fullUrl.append("&itd_inclMOT_9=1");
    }
    if (trainrestrictions == 4) {
      fullUrl.append("&itd_inclMOT_11=1");
    }

    //qDebug()<<fullUrl;
    sendHttpRequest(QUrl(fullUrl));
}
Exemplo n.º 13
0
void Parser131500ComAu::findStationsByName(const QString &stationName)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::stationsByNameRequest;

    QString fullUrl = "http://www.131500.com.au/plan-your-trip/trip-planner?session=invalidate&itd_cmd=invalid&itd_includedMeans=checkbox&itd_inclMOT_5=1&itd_inclMOT_7=1&itd_inclMOT_1=1&itd_inclMOT_9=1&itd_anyObjFilter_origin=2&itd_anyObjFilter_destination=0&itd_name_destination=Enter+location&x=37&y=12&itd_itdTripDateTimeDepArr=dep&itd_itdTimeHour=-&itd_itdTimeMinute=-&itd_itdTimeAMPM=pm";
    fullUrl.append("&itd_itdDate=" + QDate::currentDate().toString("yyyyMMdd"));
    fullUrl.append("&itd_name_origin=" + stationName);

    sendHttpRequest(QUrl(fullUrl));
}
Exemplo n.º 14
0
void ParserResRobot::getTimeTableForStation(const Station &currentStation,
                                            const Station &directionStation,
                                            const QDateTime &dateTime,
                                            ParserAbstract::Mode mode,
                                            int trainrestrictions)
{
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::getTimeTableForStationRequest;

    timetableSearchMode = mode;

    QUrl url;
    if (mode == Arrival)
        url.setUrl(baseURL + QLatin1String("/arrivalBoard"));
    else
        url.setUrl(baseURL + QLatin1String("/departureBoard"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("key", timetableAPIKey);
    query.addQueryItem("id", stationIDv2(currentStation.id.toString()));
    if (directionStation.valid)
        query.addQueryItem("direction", stationIDv2(directionStation.id.toString()));
    query.addQueryItem("date", dateTime.toString("yyyy-MM-dd"));
    query.addQueryItem("time", dateTime.toString("hh:mm"));
    query.addQueryItem("maxJourneys", "30"); // Max number of results
    query.addQueryItem("passlist", "0"); // We don't need any intermediate stops in the result
    QString formattedRestrictions(formatRestrictions(trainrestrictions));
    if (!formattedRestrictions.isEmpty())
        query.addQueryItem("products", formattedRestrictions);
    if (QLocale().language() == QLocale::Swedish)
        query.addQueryItem("lang", "sv");
    else if (QLocale().language() == QLocale::German)
        query.addQueryItem("lang", "de");
    else
        query.addQueryItem("lang", "en");
    query.addQueryItem("format", "json");

#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    qDebug() << "Searching for timetable:" << url.toString();
    sendHttpRequest(url);
}
Exemplo n.º 15
0
void ParserXmlVasttrafikSe::searchJourney(const Station &departureStation, const Station &viaStation, const Station &arrivalStation, const QDateTime &dateTime, ParserAbstract::Mode mode, int trainrestrictions)
{
    qDebug() << "ParserXmlVasttrafikSe::searchJourney(departureStation=" << departureStation.name << ", arrivalStation=" << arrivalStation.name << ", viaStation=" << viaStation.name << ", dateTime=" << dateTime.toString() << ", mode=" << mode << ", trainrestrictions=" << trainrestrictions << ")";

    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::searchJourneyRequest;

    m_searchJourneyParameters.isValid = false;
    m_searchJourneyParameters.departureStation = departureStation;
    m_searchJourneyParameters.arrivalStation = arrivalStation;
    m_searchJourneyParameters.viaStation = viaStation;
    m_searchJourneyParameters.dateTime = dateTime;
    m_searchJourneyParameters.mode = mode;
    m_searchJourneyParameters.trainrestrictions = trainrestrictions;

    QUrl uri(baseRestUrl + QLatin1String("trip"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("authKey", apiKey);
    query.addQueryItem("format", "xml");
    query.addQueryItem("date", dateTime.toString("yyyy-MM-dd"));
    query.addQueryItem("time", dateTime.toString("hh:mm"));
    query.addQueryItem("originId", departureStation.id.toString());
    if (viaStation.valid)
        query.addQueryItem("viaId", viaStation.id.toString());
    if (mode == Arrival)
        query.addQueryItem("searchForArrival", "yes");
    query.addQueryItem("destId", arrivalStation.id.toString());
    query.addQueryItem("useVas", "1");
    query.addQueryItem("useLDTrain", "0");
    query.addQueryItem("useRegTrain", "1");
    query.addQueryItem("useBus", "1");
    query.addQueryItem("useBoat", "1");
    query.addQueryItem("useTram", "1");
    query.addQueryItem("excludeDR", "1");
    query.addQueryItem("numTrips", "5");
#if defined(BUILD_FOR_QT5)
    uri.setQuery(query);
#else
    uri.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(uri);
}
Exemplo n.º 16
0
void ParserHafasXml::findStationsByName(const QString &stationName)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::stationsByNameRequest;
    QString internalStationName = stationName;
    internalStationName.replace("\"", "");

    QByteArray postData = "";
    postData.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ReqC accessId=\"" + hafasHeader.accessid + "\" ver=\"" + hafasHeader.ver + "\" prod=\"" + hafasHeader.prod + "\" lang=\"EN\"><MLcReq><MLc n=\"");
    postData.append(internalStationName);
    postData.append("\" t=\"ST\" /></MLcReq></ReqC>");

    sendHttpRequest(QUrl(baseXmlUrl), postData);
}
Exemplo n.º 17
0
void ParserHafasXml::getJourneyDetails(const QString &id)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    journeyDetailRequestData.id = "";


    //Some hafasxml backend provide the detailsdata inline
    //if so our parser already stored them
    if (journeyDetailInlineData.count() > 0 ) {

        for (int i = 0; i < journeyDetailInlineData.count(); i++) {
            JourneyDetailResultList *item = journeyDetailInlineData.at(i);
            if (item->id() == id) {
                emit journeyDetailsResult(item);
                return;
            }
        }
        emit errorOccured(tr("Internal error occured: JourneyResultdata not present!"));
        return;
    }

    //It seams we don't have the detailsdata internaly stored,
    //So we fetch them remotly.
    if (lastJourneyResultList) {

        for (int i = 0; i < lastJourneyResultList->itemcount(); i++) {
            JourneyResultItem *item = lastJourneyResultList->getItem(i);
            if (item->id() == id) {
                currentRequestState = FahrplanNS::journeyDetailsRequest;
                journeyDetailRequestData.id = item->id();
                journeyDetailRequestData.date = item->date();
                journeyDetailRequestData.duration = item->duration();
                sendHttpRequest(item->internalData1(), "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
                return;
            }
        }

    } else {
        emit errorOccured(tr("Internal error occured: JourneyResultdata not present!"));
    }
}
Exemplo n.º 18
0
void ParserHafasXml::findStationsByCoordinates(qreal longitude, qreal latitude)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::stationsByCoordinatesRequest;

    //We must format the lat and longitude to have the ??.?????? format.
    QString zeros      = "0";
    QString sLongitude = QString::number(longitude).append(zeros.repeated(6));
    QString sLatitude  = QString::number(latitude).append(zeros.repeated(6));

    QRegExp regexp = QRegExp("(\\d*)\\.(\\d\\d\\d\\d\\d\\d)(\\d*)");
    regexp.setMinimal(true);

    regexp.indexIn(sLongitude);
    sLongitude = regexp.cap(1) + regexp.cap(2);

    regexp.indexIn(sLatitude);
    sLatitude = regexp.cap(1) + regexp.cap(2);

    QUrl uri(baseUrl + "/eol");
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("look_x", sLongitude);
    query.addQueryItem("look_y", sLatitude);
    query.addQueryItem("performLocating", "2");
    query.addQueryItem("tpl", "stopsnear");
    query.addQueryItem("L", "vs_java");
    query.addQueryItem("look_maxdist", "5000");
    query.addQueryItem("look_maxno", "40");
#if defined(BUILD_FOR_QT5)
    uri.setQuery(query);
#else
    uri.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(uri);
}
Exemplo n.º 19
0
void ParserHafasXml::searchJourneyEarlier()
{
    if (hafasContext.seqNr.isEmpty()) {
        emit errorOccured(tr("Internal error occured, going earlier is not possible"));
        return;
    }

    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::searchJourneyEarlierRequest;

    QByteArray postData = "";
    postData.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ReqC accessId=\"" + hafasHeader.accessid + "\" ver=\"" + hafasHeader.ver + "\" prod=\"" + hafasHeader.prod + "\" lang=\"EN\">");
    postData.append("<ConScrReq scrDir=\"B\" nrCons=\"5\">");
    postData.append("<ConResCtxt>");
    postData.append(hafasContext.seqNr);
    postData.append("</ConResCtxt>");
    postData.append("</ConScrReq>");
    postData.append("</ReqC>");

    sendHttpRequest(QUrl(baseXmlUrl), postData);
}
Exemplo n.º 20
0
void ParserXmlVasttrafikSe::findStationsByName(const QString &stationName)
{
    qDebug() << "ParserXmlVasttrafikSe::findStationsByName(stationName" << stationName << ")";

    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByNameRequest;

    QUrl uri(baseRestUrl + QLatin1String("location.name"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("authKey", apiKey);
    query.addQueryItem("format", "xml");
    query.addQueryItem("input", stationName);
#if defined(BUILD_FOR_QT5)
    uri.setQuery(query);
#else
    uri.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(uri);
}
Exemplo n.º 21
0
void DJDownloadManager::httpResponseHeaderReceived(const QHttpResponseHeader& response )
{
	int status	= response.statusCode();
	djDebug() << "httpResponseHeaderReceived" << status;
	
	QStringList	keys	= response.keys();
	for ( int i = 0; i < keys.size(); i++ ) {
		djDebug() << keys.at(i) << response.value(keys.at(i));
	}
	switch( status ) {
	case 200://normal
		m_file->open( QIODevice::WriteOnly );
		break;
	case 206: {//resume
		m_file->open( QIODevice::WriteOnly | QIODevice::Append );
        QString range	= response.value("content-range");
        //djDebug() << "rang =" << range << range.section("-",0,0);
        range.remove("bytes",Qt::CaseInsensitive).section("-",0,0);
        m_existedFileSize	= range.remove("bytes",Qt::CaseInsensitive).section("-",0,0).toUInt();
		break;
	}
	case 302: {//redirect
		QString url	= QString( response.value("location") );
		QString host,path;
		ExtractHostAndPath( url, host, path );
		//djDebug() << "redirect" << host << path;
		sendHttpRequest( m_file, path.section("/",-1), m_http, host, path );
		break;
	}
	case 416://outof rang,finished
		break;
	default:
		m_file->setFileName("");
		break;
	}
}
Exemplo n.º 22
0
void ParserAbstract::sendHttpRequest(QUrl url)
{
    sendHttpRequest(url, NULL);
}
Exemplo n.º 23
0
void ParserHafasXml::searchJourney(const Station &departureStation, const Station &viaStation, const Station &arrivalStation, const QDateTime &dateTime, ParserAbstract::Mode mode, int trainrestrictions)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::searchJourneyRequest;
    hafasContext.seqNr = "";
    lastJourneyResultList = NULL;

    QString trainrestr = getTrainRestrictionsCodes(trainrestrictions);

    QByteArray postData = "";
    postData.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ReqC accessId=\"" + hafasHeader.accessid + "\" ver=\"" + hafasHeader.ver + "\" prod=\"" + hafasHeader.prod + "\" lang=\"EN\">");
    postData.append("<ConReq>");
    postData.append("<Start min=\"0\">");
    postData.append("<Station externalId=\"");
    postData.append(parseExternalIds(departureStation.id));
    postData.append("\" distance=\"0\"></Station>");
    postData.append("<Prod prod=\"");
    postData.append(trainrestr);
    postData.append("\"></Prod>");
    postData.append("</Start>");
    if (viaStation.id.isValid()) {
        postData.append("<Via min=\"0\">");
        postData.append("<Station externalId=\"");
        postData.append(parseExternalIds(viaStation.id));
        postData.append("\" distance=\"0\"></Station>");
        postData.append("<Prod prod=\"");
        postData.append(trainrestr);
        postData.append("\"></Prod>");
        postData.append("</Via>");
    }
    postData.append("<Dest min=\"0\">");
    postData.append("<Station externalId=\"");
    postData.append(parseExternalIds(arrivalStation.id));
    postData.append("\" distance=\"0\"></Station>");
    postData.append("</Dest>");
    postData.append("<ReqT time=\"");
    postData.append(dateTime.toString("hh:mm"));
    postData.append("\" date=\"");
    postData.append(dateTime.toString("yyyyMMdd"));
    postData.append("\" a=\"");
    postData.append((mode == Arrival) ? "1" : "0");
    postData.append("\"></ReqT>");

    if (mode == Arrival) {
        postData.append("<RFlags b=\"");
        postData.append("4"); //From count
        postData.append("\" f=\"");
        postData.append("1"); //To count
        postData.append("\"></RFlags>");
    } else {
        postData.append("<RFlags b=\"");
        postData.append("1"); //From count
        postData.append("\" f=\"");
        postData.append("4"); //To count
        postData.append("\"></RFlags>");
    }

    postData.append("<GISParameters><Front></Front><Back></Back></GISParameters>");
    postData.append("</ConReq>");
    postData.append("</ReqC>");

    sendHttpRequest(QUrl(baseXmlUrl), postData);
}
Exemplo n.º 24
0
void ParserHafasXml::getTimeTableForStation(const Station &currentStation, const Station &directionStation, const QDateTime &dateTime, ParserAbstract::Mode mode, int trainrestrictions)
{
    if (currentRequestState != FahrplanNS::noneRequest) {
        return;
    }

    currentRequestState = FahrplanNS::getTimeTableForStationRequest;

    if (STTableMode == 0) {
        currentRequestState = FahrplanNS::getTimeTableForStationRequest;

        QString trainrestr = getTrainRestrictionsCodes(trainrestrictions);

        QByteArray postData = "";
        postData.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ReqC accessId=\"" + hafasHeader.accessid + "\" ver=\"" + hafasHeader.ver + "\" prod=\"" + hafasHeader.prod + "\" lang=\"EN\">");
        postData.append("<STBReq boardType=\"");
        if (mode == Departure) {
            postData.append("DEP");
        } else /* (getTimeTableForStationRequestData.mode == Arrival) */ {
            postData.append("ARR");
        }
        postData.append("\" maxJourneys=\"40\">");
        postData.append("<Time>");
        postData.append(dateTime.toString("hh:mm"));
        postData.append("</Time>");
        postData.append("<Period><DateBegin><Date>");
        postData.append(dateTime.toString("yyyyMMdd"));
        postData.append("</Date></DateBegin><DateEnd><Date>");
        postData.append(dateTime.toString("yyyyMMdd"));
        postData.append("</Date></DateEnd></Period>");
        postData.append("<TableStation externalId=\"");
        postData.append(parseExternalIds(currentStation.id));
        postData.append("\"></TableStation>");
        postData.append("<ProductFilter>");
        postData.append(trainrestr);
        postData.append("</ProductFilter>");
        postData.append("<DirectionFilter externalId=\"");
        postData.append(parseExternalIds(directionStation.id));
        postData.append("\"></DirectionFilter>");
        postData.append("</STBReq>");
        postData.append("</ReqC>");

        qDebug() << postData;

        sendHttpRequest(QUrl(baseXmlUrl), postData);
    }

    if (STTableMode == 1) {
        QString trainrestr = getTrainRestrictionsCodes(trainrestrictions);
        QUrl uri(baseSTTableUrl);
#if defined(BUILD_FOR_QT5)
        QUrlQuery query;
#else
        QUrl query;
#endif
        query.addQueryItem("productsFilter", trainrestr);
        if (mode == Departure) {
            query.addQueryItem("boardType", "dep");
        } else /* (getTimeTableForStationRequestData.mode == Arrival) */ {
            query.addQueryItem("boardType", "arr");
        }
        query.addQueryItem("date", dateTime.toString("dd.MM.yyyy"));
        query.addQueryItem("time", dateTime.toString("hh:mm"));
        query.addQueryItem("input", currentStation.name);
        query.addQueryItem("REQ0JourneyStopsSID", currentStation.id.toString());
        query.addQueryItem("maxJourneys", "50");
        query.addQueryItem("start", "yes");
        query.addQueryItem("L", "vs_java3");
#if defined(BUILD_FOR_QT5)
        uri.setQuery(query);
#else
        uri.setQueryItems(query.queryItems());
#endif
        sendHttpRequest(uri);
    }
}
Exemplo n.º 25
0
void sendRequest(byte ip[], int port, char object[], int value, EthernetClient cl) {
  sprintf(buf, "GET /?%s=%d", object, value);
  sendHttpRequest(ip, port, cl);
}
Exemplo n.º 26
0
/* Connect to a host on a certain port number. Throws HTTPClientException.
webpage: required format "www.google.com/"
port: default 80. port hosting the web server
webpageHtml: new pointer to webpage's html
*/
void HTTPClient::httpRequestWebpage(const char* webpage, int port, char** returnedWebpageHtml)
{
	char* httpGetText = "GET ";
	char* httpHostText = " HTTP/1.1\r\nHost: ";
	char* httpReturnText = "\r\n\r\n";
	char* webpageHost = NULL;
	char* webpageResource = NULL;
	char* httpRequest = NULL;
	char* tempReturnedWebpageHtml = NULL;
	int resourceIndex = -1;
	int htmlDocumentSize = 0;
	int httpRequestSize = 0;

	//Delete previously stored html data
	if (*returnedWebpageHtml)
	{
		delete[] * returnedWebpageHtml;
		*returnedWebpageHtml = NULL;
	}

	//Initialize Winsock 2.2
	if (!initializeWinsock())
	{
		throw HTTPClientException("httpRequestWebpage(const char*, int, char**)", "Failed to initialize Winsock.\n");
	}

	//cout << "Full URL: '" << webpage << "' Len: " << strlen(webpage) << "'.\n";

	//Find first '/' to indicate resource
	for (size_t i = 0; i < strlen(webpage); i++){
		if (webpage[i] == '/'){
			resourceIndex = i;
			//cout << "Found resource index: " << i << endl;
			break;
		}
	}

	//If failed to find resource
	if (resourceIndex == -1)
		throw HTTPClientException("httpRequestWebpage(const char*, int, char**)", "Cannot find /resource in URL.\n");

	//Set host
	webpageHost = new char[resourceIndex + 1];
	strncpy_s(webpageHost, resourceIndex + 1, webpage, resourceIndex);
	//cout << "Host: '" << webpageHost << "' Len: " << strlen(webpageHost) << endl;

	//Set resource
	webpageResource = new char[strlen(webpage) - resourceIndex + 1];
	strncpy_s(webpageResource, strlen(webpage) - resourceIndex + 1, webpage + resourceIndex, strlen(webpage) - resourceIndex);
	//cout << "Resource: '" << webpageResource << "' Len: " << strlen(webpageResource) << endl;

	//Connect to web server
	if (!connectToWebServer(webpageHost, port)){
		cleanup(webpageHost, webpageResource, httpRequest, tempReturnedWebpageHtml);
		throw HTTPClientException("httpRequestWebpage(const char*, int, char**)", "Failed to connect.\n");
	}

	//Build HTTP request
	httpRequestSize = strlen(httpGetText) + strlen(webpageResource) + strlen(httpHostText) + strlen(webpageHost) + strlen(httpReturnText) + 1;
	httpRequest = new char[httpRequestSize];
	strcpy(httpRequest, httpGetText);
	strcpy(httpRequest + strlen(httpGetText), webpageResource);
	strcpy(httpRequest + strlen(httpGetText) + strlen(webpageResource), httpHostText);
	strcpy(httpRequest + strlen(httpGetText) + strlen(webpageResource) + strlen(httpHostText), webpageHost);
	strcpy(httpRequest + strlen(httpGetText) + strlen(webpageResource) + strlen(httpHostText) + strlen(webpageHost), httpReturnText);

	//Send HTTP request
	if (!sendHttpRequest(httpRequest))
	{
		cleanup(webpageHost, webpageResource, httpRequest, tempReturnedWebpageHtml);
		throw HTTPClientException("httpRequestWebpage(const char*, int, char**)", "Failed to send() HTTP request.\n");
	}

	//Allocate memory for html document
	tempReturnedWebpageHtml = new char[MAXIMUM_WEBPAGE_LENGTH];

	cout << "Start receive()...\n";
	//Recieve HTTP response
	if (!receiveHttpResponse(tempReturnedWebpageHtml, htmlDocumentSize)){
		cleanup(webpageHost, webpageResource, httpRequest, tempReturnedWebpageHtml);
		throw HTTPClientException("httpRequestWebpage(const char*, int, char**)", "Failed to receive() HTTP request.\n");
	}
	cout << "End receive()...\n";

	//Copy temporary buffer to returned buffer
	*returnedWebpageHtml = new char[htmlDocumentSize + 2];
	strcpy(*returnedWebpageHtml, tempReturnedWebpageHtml);

	//printf("Document size: %d \n", htmlDocumentSize);

	//Reset server config, necessary for multiple http requests to different hosts from the same object
	resetServerConfig();

	//Delete memory allocated in method
	cleanup(webpageHost, webpageResource, httpRequest, tempReturnedWebpageHtml);
}