本文整理汇总了C++中XMLURL::getFragment方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLURL::getFragment方法的具体用法?C++ XMLURL::getFragment怎么用?C++ XMLURL::getFragment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLURL
的用法示例。
在下文中一共展示了XMLURL::getFragment方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: checkBasicResult
static bool checkBasicResult(const XMLURL& testURL
, const BasicTestEntry& testInfo)
{
//
// Check each part to insure that its what its supposed to be. Since
// any of them can be a null pointer, we have a little helper function
// that spits out the actual testing code for each one.
//
if (!checkAField(testURL.getURLText(), testInfo.fullText, L"Full Text"))
return false;
if (!checkAField(testURL.getFragment(), testInfo.fragment, L"Fragment"))
return false;
if (!checkAField(testURL.getHost(), testInfo.host, L"Host"))
return false;
if (testURL.getPortNum() != testInfo.portNum)
{
XERCES_STD_QUALIFIER wcout << L"Expected port number: " << testInfo.portNum
<< L" but got: " << testURL.getPortNum() << XERCES_STD_QUALIFIER endl;
return false;
}
if (!checkAField(testURL.getPath(), testInfo.path, L"Path"))
return false;
if (!checkAField(testURL.getPassword(), testInfo.password, L"Password"))
return false;
if (!checkAField(testURL.getQuery(), testInfo.query, L"Query"))
return false;
if (!checkAField(testURL.getUser(), testInfo.user, L"User"))
return false;
return true;
}
示例2: createHTTPRequest
void BinHTTPInputStreamCommon::createHTTPRequest(const XMLURL &urlSource, const XMLNetHTTPInfo *httpInfo, CharBuffer &buffer)
{
static const char *GET = "GET ";
static const char *PUT = "PUT ";
static const char *POST = "POST ";
static const char *HTTP10 = " HTTP/1.0\r\n";
static const char *HOST = "Host: ";
static const char *AUTHORIZATION = "Authorization: Basic ";
static const char *COLON = ":";
XMLTransService::Codes failReason;
const XMLSize_t blockSize = 2048;
XMLTranscoder* trans = XMLPlatformUtils::fgTransService->makeNewTranscoderFor("ISO8859-1", failReason, blockSize, fMemoryManager);
Janitor<XMLTranscoder> janTrans(trans);
TranscodeToStr hostName(urlSource.getHost(), trans, fMemoryManager);
TranscodeToStr path(urlSource.getPath(), trans, fMemoryManager);
TranscodeToStr fragment(urlSource.getFragment(), trans, fMemoryManager);
TranscodeToStr query(urlSource.getQuery(), trans, fMemoryManager);
// Build up the http GET command to send to the server.
// To do: We should really support http 1.1. This implementation
// is weak.
if(httpInfo) {
switch(httpInfo->fHTTPMethod) {
case XMLNetHTTPInfo::GET: buffer.append(GET); break;
case XMLNetHTTPInfo::PUT: buffer.append(PUT); break;
case XMLNetHTTPInfo::POST: buffer.append(POST); break;
}
}
else {
buffer.append(GET);
}
if(path.str() != 0) {
buffer.append((char*)path.str());
}
else {
buffer.append("/");
}
if(query.str() != 0) {
buffer.append("?");
buffer.append((char*)query.str());
}
if(fragment.str() != 0) {
buffer.append((char*)fragment.str());
}
buffer.append(HTTP10);
buffer.append(HOST);
buffer.append((char*)hostName.str());
if(urlSource.getPortNum() != 80)
{
buffer.append(COLON);
buffer.appendDecimalNumber(urlSource.getPortNum());
}
buffer.append(CRLF);
const XMLCh *username = urlSource.getUser();
const XMLCh *password = urlSource.getPassword();
if(username && password) {
XMLBuffer userPassBuf(256, fMemoryManager);
userPassBuf.append(username);
userPassBuf.append(chColon);
userPassBuf.append(password);
TranscodeToStr userPass(userPassBuf.getRawBuffer(), trans, fMemoryManager);
XMLSize_t len;
XMLByte* encodedData = Base64::encode(userPass.str(), userPass.length(), &len, fMemoryManager);
ArrayJanitor<XMLByte> janBuf2(encodedData, fMemoryManager);
if(encodedData) {
// HTTP doesn't want the 0x0A separating the data in chunks of 76 chars per line
XMLByte* authData = (XMLByte*)fMemoryManager->allocate((len+1)*sizeof(XMLByte));
ArrayJanitor<XMLByte> janBuf(authData, fMemoryManager);
XMLByte *cursor = authData;
for(XMLSize_t i = 0; i < len; ++i)
if(encodedData[i] != chLF)
*cursor++ = encodedData[i];
*cursor++ = 0;
buffer.append(AUTHORIZATION);
buffer.append((char*)authData);
buffer.append(CRLF);
}
}
if(httpInfo && httpInfo->fHeaders)
buffer.append(httpInfo->fHeaders, httpInfo->fHeadersLen);
buffer.append(CRLF);
}
示例3: lock
BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo /*=0*/)
: fSocketHandle(0)
, fBytesProcessed(0)
{
if(!fInitialized)
{
if (!fInitMutex)
{
XMLMutex* tmpMutex = new XMLMutex();
if (XMLPlatformUtils::compareAndSwap((void**)&fInitMutex, tmpMutex, 0))
{
// Someone beat us to it, so let's clean up ours
delete tmpMutex;
}
}
XMLMutexLock lock(fInitMutex);
if (!fInitialized)
{
Initialize(urlSource.getMemoryManager());
}
}
fMemoryManager = urlSource.getMemoryManager();
//
// Pull all of the parts of the URL out of th urlSource object, and transcode them
// and transcode them back to ASCII.
//
const XMLCh* hostName = urlSource.getHost();
char* hostNameAsCharStar = XMLString::transcode(hostName, urlSource.getMemoryManager());
ArrayJanitor<char> janBuf1(hostNameAsCharStar, urlSource.getMemoryManager());
const XMLCh* path = urlSource.getPath();
char* pathAsCharStar = XMLString::transcode(path, urlSource.getMemoryManager());
ArrayJanitor<char> janBuf2(pathAsCharStar, urlSource.getMemoryManager());
const XMLCh* fragment = urlSource.getFragment();
char* fragmentAsCharStar = 0;
if (fragment)
fragmentAsCharStar = XMLString::transcode(fragment, urlSource.getMemoryManager());
ArrayJanitor<char> janBuf3(fragmentAsCharStar, urlSource.getMemoryManager());
const XMLCh* query = urlSource.getQuery();
char* queryAsCharStar = 0;
if (query)
queryAsCharStar = XMLString::transcode(query, urlSource.getMemoryManager());
ArrayJanitor<char> janBuf4(queryAsCharStar, urlSource.getMemoryManager());
unsigned short portNumber = (unsigned short) urlSource.getPortNum();
//
// Set up a socket.
//
struct hostent* hostEntPtr = 0;
struct sockaddr_in sa;
if ((hostEntPtr = gethostbyname(hostNameAsCharStar)) == NULL)
{
unsigned long numAddress = inet_addr(hostNameAsCharStar);
if (numAddress == INADDR_NONE)
{
// Call WSAGetLastError() to get the error number.
ThrowXMLwithMemMgr1(NetAccessorException,
XMLExcepts::NetAcc_TargetResolution, hostName, fMemoryManager);
}
if ((hostEntPtr =
gethostbyaddr((const char *) &numAddress,
sizeof(unsigned long), AF_INET)) == NULL)
{
// Call WSAGetLastError() to get the error number.
ThrowXMLwithMemMgr1(NetAccessorException,
XMLExcepts::NetAcc_TargetResolution, hostName, fMemoryManager);
}
}
memcpy((void *) &sa.sin_addr,
(const void *) hostEntPtr->h_addr, hostEntPtr->h_length);
sa.sin_family = hostEntPtr->h_addrtype;
sa.sin_port = htons(portNumber);
SOCKET s = socket(hostEntPtr->h_addrtype, SOCK_STREAM, 0);
if (s == INVALID_SOCKET)
{
// Call WSAGetLastError() to get the error number.
ThrowXMLwithMemMgr1(NetAccessorException,
XMLExcepts::NetAcc_CreateSocket, urlSource.getURLText(), fMemoryManager);
}
if (connect(s, (struct sockaddr *) &sa, sizeof(sa)) == SOCKET_ERROR)
{
// Call WSAGetLastError() to get the error number.
ThrowXMLwithMemMgr1(NetAccessorException,
XMLExcepts::NetAcc_ConnSocket, urlSource.getURLText(), fMemoryManager);
}
// Set a flag so we know that the headers have not been read yet.
bool fHeaderRead = false;
// The port is open and ready to go.
//.........这里部分代码省略.........
示例4: fSocket
XERCES_CPP_NAMESPACE_BEGIN
UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
: fSocket(0)
, fBytesProcessed(0)
, fMemoryManager(urlSource.getMemoryManager())
{
//
// Constants in ASCII to send/check in the HTTP request/response
//
const char GET[] =
{
chLatin_G, chLatin_E, chLatin_T, chSpace, chNull
};
const char PUT[] =
{
chLatin_P, chLatin_U, chLatin_T, chSpace, chNull
};
const char POST[] =
{
chLatin_P, chLatin_O, chLatin_S, chLatin_T, chSpace, chNull
};
const char HTTP[] =
{
chLatin_H, chLatin_T, chLatin_T, chLatin_P, chNull
};
const char HTTP10[] =
{
chSpace, chLatin_H, chLatin_T, chLatin_T, chLatin_P, chForwardSlash, chDigit_1, chPeriod, chDigit_0, chCR, chLF, chNull
};
const char CRLF[] =
{
chCR, chLF, chNull
};
const char CRLF2X[] =
{
chCR, chLF, chCR, chLF, chNull
};
const char LF2X[] =
{
chLF, chLF, chNull
};
const char HOST[] =
{
chLatin_H, chLatin_o, chLatin_s, chLatin_t, chColon, chSpace, chNull
};
const char COLON[] =
{
chColon, chNull
};
const char resp200 [] =
{
chSpace, chDigit_2, chDigit_0, chDigit_0, chSpace, chNull
};
unsigned int charsEaten;
unsigned int transSize;
XMLTransService::Codes failReason;
const unsigned int blockSize = 2048;
const unsigned int bufSize = 5;
static XMLCh portBuffer[bufSize+1];
//
// Pull all of the parts of the URL out of the urlSource object
//
const XMLCh* hostName = urlSource.getHost();
const XMLCh* path = urlSource.getPath();
const XMLCh* fragment = urlSource.getFragment();
const XMLCh* query = urlSource.getQuery();
//
// Convert the hostName to the platform's code page for gethostbyname and
// inet_addr functions.
//
char* hostNameAsCharStar = XMLString::transcode(hostName, fMemoryManager);
ArrayJanitor<char> janBuf1(hostNameAsCharStar, fMemoryManager);
//
// Convert all the parts of the urlSource object to ASCII so they can be
// sent to the remote host in that format
//
transSize = XMLString::stringLen(hostName)+1;
char* hostNameAsASCII = (char*) fMemoryManager->allocate
(
//.........这里部分代码省略.........