void UserProfileForm::OnTransactionReadyToRead(HttpSession& httpSession, HttpTransaction& httpTransaction, int availableBodyLen) { AppLogDebug("OnTransactionReadyToRead,..availableBodyLen=%d",availableBodyLen); count++; HttpResponse* pHttpResponse = httpTransaction.GetResponse(); if(pHttpResponse->GetHttpStatusCode() == HTTP_STATUS_OK) { __pBuffer = pHttpResponse->ReadBodyN(); } if(__pProfileName==NULL) { ParseJsonData(); Label *pLabel = new Label(); String labelText(L"Welcome "); labelText.Append(*__pProfileName); AppLog("labelText is =%ls",labelText.GetPointer()); pLabel->Construct(Rectangle(05, 50, 500, 100), labelText); AddControl(*pLabel); Draw(); Show(); __pSession->CloseTransaction(httpTransaction); delete __pSession; __pSession = null; } //Get Profile Picture String imageurl; imageurl.Append(L"https://graph.facebook.com/me"); imageurl.Append(L"/picture?"); imageurl.Append(L"access_token="); imageurl.Append(__accessToken); SendRequestGet(imageurl); __pProfileImage = new Image(); __pProfileImage->Construct(); Bitmap *pBitmap; pBitmap=__pProfileImage->DecodeN(*__pBuffer,IMG_FORMAT_JPG,BITMAP_PIXEL_FORMAT_ARGB8888,150,150); Label *pImageLabel = new Label(); pImageLabel->Construct(Rectangle(150,150, 150, 150),""); pImageLabel->SetBackgroundBitmap(*pBitmap); AddControl(*pImageLabel); Button* pGetFriends = new Button(); pGetFriends->Construct(Rectangle(30,330, 350, 70), L"Get Friends"); pGetFriends->SetActionId(ID_BUTTON_FRIENDS_CLICKED); pGetFriends->AddActionEventListener(*this); AddControl(*pGetFriends); Button* pLogout = new Button(); pLogout->Construct(Rectangle(30,430, 350, 70), L"Logout"); pLogout->SetActionId(ID_BUTTON_LOGOUT_CLICKED); pLogout->AddActionEventListener(*this); AddControl(*pLogout); Draw(); Show(); }
void ProjectGiraffeTab1::OnTransactionReadyToRead (HttpSession &httpSession, HttpTransaction &httpTransaction, int availableBodyLen) { HttpResponse* pHttpResponse = httpTransaction.GetResponse(); HttpHeader* pHttpHeader = null; AppLog("Checking HTTP Status Code"); if (pHttpResponse->GetHttpStatusCode() == HTTP_STATUS_OK) { // MessageBox msgBox; // msgBox.Construct(L"HTTP STATUS", L"HTTP Request OK", MSGBOX_STYLE_NONE, 3000); // int modalresult = 0; // msgBox.ShowAndWait(modalresult); ByteBuffer* pBody = null; String statusText = pHttpResponse->GetStatusText(); String version = pHttpResponse->GetVersion(); pHttpHeader = pHttpResponse->GetHeader(); pBody = pHttpResponse->ReadBodyN(); //delete pBody; //Parses from ByteBuffer IJsonValue* pValue = JsonParser::ParseN(*pBody); AppLog("Received HTTP response."); AppLog("Before traverse %d", _tableView->GetItemCount()); _pJsonKeyList->RemoveAll(true); _pValueList->RemoveAll(true); _items->RemoveAll(true); // Populate the panel TraverseFunction(pValue); AppLog("After traverse"); //clean up allocated jsonValues if (pValue->GetType() == JSON_TYPE_OBJECT) { // Converts the pValue to JsonObject JsonObject* pObject = static_cast< JsonObject* >(pValue); pObject->RemoveAll(true); } else if (pValue->GetType() == JSON_TYPE_ARRAY) { // Converts the pValue to JsonArray JsonArray* pArray = static_cast< JsonArray* >(pValue); pArray->RemoveAll(true); } delete pBody; delete pValue; _tableView->ScrollToItem(0); }else{ AppLog("HTTP Status not OK"); } //Remove load icon here. //_loadingPopupThread->Quit(); //_loadingPopupThread->Join(); }
void IRailConnection::OnTransactionReadyToRead(HttpSession& httpSession, HttpTransaction& httpTransaction, int availableBodyLen) { //LEZEN werkt ! ArrayListT<Connection> connections; connections.Construct(10); HttpResponse* resp = httpTransaction.GetResponse(); ByteBuffer* buf = (resp->ReadBodyN()); xmlDocPtr doc = xmlParseMemory((char*) (buf->GetPointer()), buf->GetLimit()); if (doc != null) { xmlNodePtr connection = null; xmlNodePtr pRoot = xmlDocGetRootElement(doc); for (connection = pRoot->children; connection; connection = connection->next) { xmlNodePtr child = null; Connection con; for (child = connection->children; child; child = child->next) { if (child->type == XML_ELEMENT_NODE) { String nodeName; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) child->name, nodeName); if (nodeName.CompareTo("departure") == 0) { xmlNodePtr child1 = null; for (child1 = child->children; child1; child1 = child1->next) { if (child1->type == XML_ELEMENT_NODE) { String nodeName1; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) child1->name, nodeName1); if (nodeName1.CompareTo("time") == 0) { xmlAttrPtr isoTime = child1->properties; if (isoTime != null && isoTime->type == XML_ATTRIBUTE_NODE) { String time; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) isoTime->children->content, time); con.setFromTime(time); } } else if (nodeName1.CompareTo("station") == 0) { String station; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) child1->children->content, station); con.setFromStation(station); } } } } else if (nodeName.CompareTo("arrival") == 0) { xmlNodePtr child1 = null; for (child1 = child->children; child1; child1 = child1->next) { if (child1->type == XML_ELEMENT_NODE) { String nodeName1; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) child1->name, nodeName1); if (nodeName1.CompareTo("time") == 0) { xmlAttrPtr isoTime = child1->properties; if (isoTime != null && isoTime->type == XML_ATTRIBUTE_NODE) { String time; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) isoTime->children->content, time); con.setToTime(time); } } else if (nodeName1.CompareTo("station") == 0) { String station; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) child1->children->content, station); con.setToStation(station); } } } } else if (nodeName.CompareTo("duration") == 0) { String duration_; Osp::Base::Utility::StringUtil::Utf8ToString( (char*) child->children->content, duration_); int duration; Integer::Parse(duration_, duration); con.setDuration(duration); } } } if(con != null) { connections.Add(con); } } xmlFreeDoc(doc); this->pTrainsResultsForm->setConnections(connections); } else { AppLog("parsing internet file failed"); } }
void HttpThread::OnTransactionHeaderCompleted(HttpSession & httpSession, HttpTransaction & httpTransaction, int headerLen, bool bAuthRequired) { result r = E_SUCCESS; HttpResponse * pResponse = httpTransaction.GetResponse(); if ((r = GetLastResult()) != E_SUCCESS) { LOG(LWARNING, ("httpTransaction.GetResponse error", r)); httpSession.CancelTransaction(httpTransaction); httpSession.CloseTransaction(httpTransaction); m_callback.OnFinish(-1, m_begRange, m_endRange); return; } int const httpStatusCode = pResponse->GetHttpStatusCode(); // When we didn't ask for chunks, code should be 200 // When we asked for a chunk, code should be 206 bool const isChunk = !(m_begRange == 0 && m_endRange < 0); if ((isChunk && httpStatusCode != 206) || (!isChunk && httpStatusCode != 200)) { LOG(LWARNING, ("Http request to", m_url, " aborted with HTTP code", httpStatusCode)); httpSession.CancelTransaction(httpTransaction); r = httpSession.CloseTransaction(httpTransaction); m_callback.OnFinish(-4, m_begRange, m_endRange); LOG(LDEBUG, ("CloseTransaction result", r)); return; } else if (m_expectedSize > 0) { bool bGoodSize = false; // try to get content length from Content-Range header first HttpHeader * pHeader = pResponse->GetHeader(); LOG(LDEBUG, ("Header:", FromTizenString(*pHeader->GetRawHeaderN()))); IEnumerator * pValues = pHeader->GetFieldValuesN("Content-Range"); if (GetLastResult() == E_SUCCESS) { bGoodSize = true; pValues->MoveNext(); // strange, but works String const * pString = dynamic_cast<String const *>(pValues->GetCurrent()); if (pString->GetLength()) { int lastInd; pString->LastIndexOf ('/', pString->GetLength()-1, lastInd); int64_t value = -1; String tail; pString->SubString(lastInd + 1, tail); LOG(LDEBUG, ("tail value:",FromTizenString(tail))); LongLong::Parse(tail, value); if (value != m_expectedSize) { LOG(LWARNING, ("Http request to", m_url, "aborted - invalid Content-Range:", value, " expected:", m_expectedSize )); httpSession.CancelTransaction(httpTransaction); r = httpSession.CloseTransaction(httpTransaction); m_callback.OnFinish(-2, m_begRange, m_endRange); LOG(LDEBUG, ("CloseTransaction result", r)); } } } else { pValues = pHeader->GetFieldValuesN("Content-Length"); if (GetLastResult() == E_SUCCESS) { bGoodSize = true; pValues->MoveNext(); // strange, but works String const * pString = dynamic_cast<String const *>(pValues->GetCurrent()); if (pString) { int64_t value = -1; LongLong::Parse(*pString, value); if (value != m_expectedSize) { LOG(LWARNING, ("Http request to", m_url, "aborted - invalid Content-Length:", value, " expected:", m_expectedSize)); httpSession.CancelTransaction(httpTransaction); r = httpSession.CloseTransaction(httpTransaction); m_callback.OnFinish(-2, m_begRange, m_endRange); LOG(LDEBUG, ("CloseTransaction result", r)); } } } } if (!bGoodSize) { LOG(LWARNING, ("Http request to", m_url, "aborted, server didn't send any valid file size")); httpSession.CancelTransaction(httpTransaction); r = httpSession.CloseTransaction(httpTransaction); m_callback.OnFinish(-2, m_begRange, m_endRange); LOG(LDEBUG, ("CloseTransaction result", r)); } } }