You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2004/05/11 15:39:35 UTC
cvs commit: xml-xerces/c/src/xercesc/util/NetAccessors/libWWW LibWWWNetAccessor.cpp LibWWWNetAccessor.hpp
amassari 2004/05/11 06:39:35
Modified: c/src/xercesc/util XMLNetAccessor.hpp
c/src/xercesc/util/NetAccessors/MacOSURLAccess
MacOSURLAccess.cpp MacOSURLAccess.hpp
c/src/xercesc/util/NetAccessors/MacOSURLAccessCF
MacOSURLAccessCF.cpp MacOSURLAccessCF.hpp
c/src/xercesc/util/NetAccessors/Socket SocketNetAccessor.cpp
SocketNetAccessor.hpp UnixHTTPURLInputStream.cpp
UnixHTTPURLInputStream.hpp
c/src/xercesc/util/NetAccessors/WinSock
BinHTTPURLInputStream.cpp BinHTTPURLInputStream.hpp
WinSockNetAccessor.cpp WinSockNetAccessor.hpp
c/src/xercesc/util/NetAccessors/libWWW LibWWWNetAccessor.cpp
LibWWWNetAccessor.hpp
Log:
The net accessor input source now can be used to get data using PUT or POST, as well as GET
Revision Changes Path
1.6 +50 -2 xml-xerces/c/src/xercesc/util/XMLNetAccessor.hpp
Index: XMLNetAccessor.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLNetAccessor.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XMLNetAccessor.hpp 15 May 2003 19:07:46 -0000 1.5
+++ XMLNetAccessor.hpp 11 May 2004 13:39:35 -0000 1.6
@@ -68,6 +68,53 @@
class BinInputStream;
+// This class holds advanced informations about the HTTP connection
+class XMLUTIL_EXPORT XMLNetHTTPInfo
+{
+public:
+ XMLNetHTTPInfo();
+
+ typedef enum {
+ GET,
+ PUT,
+ POST,
+ } HTTPMethod;
+
+ // -----------------------------------------------------------------------
+ // Data members
+ //
+ // fHTTPMethod
+ // The type of the HTTP request
+ //
+ // fHeaders
+ // The extra headers that will be sent as part of the request; the format is
+ // Header1: Value\r\nHeader2: Value\r\n
+ //
+ // fHeadersLen
+ // The length of the string pointed by fHeaders, in bytes
+ //
+ // fPayload
+ // The extra data that will be sent after the headers; in the case of a PUT
+ // operation, this is the content of the resource being posted. It can be binary data
+ //
+ // fPayloadLen
+ // The length of the binary buffer pointed by fPayload, in bytes
+ //
+ HTTPMethod fHTTPMethod;
+ const char* fHeaders;
+ int fHeadersLen;
+ const char* fPayload;
+ int fPayloadLen;
+};
+
+inline XMLNetHTTPInfo::XMLNetHTTPInfo()
+:fHTTPMethod(XMLNetHTTPInfo::GET),
+ fHeaders(0),
+ fHeadersLen(0),
+ fPayload(0),
+ fPayloadLen(0)
+{
+}
//
@@ -101,7 +148,8 @@
virtual BinInputStream* makeNew
(
- const XMLURL& urlSrc
+ const XMLURL& urlSrc,
+ const XMLNetHTTPInfo* httpInfo=0
) = 0;
1.4 +4 -2 xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.cpp
Index: MacOSURLAccess.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MacOSURLAccess.cpp 17 May 2003 05:54:18 -0000 1.3
+++ MacOSURLAccess.cpp 11 May 2004 13:39:35 -0000 1.4
@@ -95,8 +95,10 @@
BinInputStream*
-MacOSURLAccess::makeNew(const XMLURL& urlSource)
+MacOSURLAccess::makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
{
+ if(httpInfo!=0 && httpInfo->fHTTPMethod!=XMLNetHTTPInfo::GET)
+ ThrowXML(NetAccessorException, XMLExcepts::NetAcc_UnsupportedMethod);
// We just go ahead and try to create a URLAccess stream
// from this source. That's the correct place to verify
// whether or not we can really handle this URL type...
1.4 +2 -2 xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.hpp
Index: MacOSURLAccess.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MacOSURLAccess.hpp 7 Mar 2003 18:15:49 -0000 1.3
+++ MacOSURLAccess.hpp 11 May 2004 13:39:35 -0000 1.4
@@ -86,7 +86,7 @@
MacOSURLAccess();
~MacOSURLAccess();
- BinInputStream* makeNew(const XMLURL& urlSource);
+ BinInputStream* makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
const XMLCh* getId() const;
private :
1.4 +4 -2 xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.cpp
Index: MacOSURLAccessCF.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MacOSURLAccessCF.cpp 17 May 2003 05:54:18 -0000 1.3
+++ MacOSURLAccessCF.cpp 11 May 2004 13:39:35 -0000 1.4
@@ -92,8 +92,10 @@
BinInputStream*
-MacOSURLAccessCF::makeNew(const XMLURL& urlSource)
+MacOSURLAccessCF::makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
{
+ if(httpInfo!=0 && httpInfo->fHTTPMethod!=XMLNetHTTPInfo::GET)
+ ThrowXML(NetAccessorException, XMLExcepts::NetAcc_UnsupportedMethod);
BinInputStream* result = new (urlSource.getMemoryManager()) URLAccessCFBinInputStream(urlSource);
return result;
}
1.5 +2 -2 xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.hpp
Index: MacOSURLAccessCF.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- MacOSURLAccessCF.hpp 7 Mar 2003 18:15:49 -0000 1.4
+++ MacOSURLAccessCF.hpp 11 May 2004 13:39:35 -0000 1.5
@@ -86,7 +86,7 @@
MacOSURLAccessCF();
~MacOSURLAccessCF();
- BinInputStream* makeNew(const XMLURL& urlSource);
+ BinInputStream* makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
const XMLCh* getId() const;
private :
1.6 +3 -3 xml-xerces/c/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp
Index: SocketNetAccessor.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SocketNetAccessor.cpp 29 Jan 2004 11:51:20 -0000 1.5
+++ SocketNetAccessor.cpp 11 May 2004 13:39:35 -0000 1.6
@@ -88,7 +88,7 @@
}
-BinInputStream* SocketNetAccessor::makeNew(const XMLURL& urlSource)
+BinInputStream* SocketNetAccessor::makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
{
XMLURL::Protocols protocol = urlSource.getProtocol();
switch(protocol)
@@ -96,7 +96,7 @@
case XMLURL::HTTP:
{
UnixHTTPURLInputStream* retStrm =
- new (urlSource.getMemoryManager()) UnixHTTPURLInputStream(urlSource);
+ new (urlSource.getMemoryManager()) UnixHTTPURLInputStream(urlSource, httpInfo);
return retStrm;
}
1.4 +5 -2 xml-xerces/c/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp
Index: SocketNetAccessor.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SocketNetAccessor.hpp 7 Mar 2003 18:15:49 -0000 1.3
+++ SocketNetAccessor.hpp 11 May 2004 13:39:35 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.3 2003/03/07 18:15:49 tng
* Return a reference instead of void for operator=
*
@@ -100,8 +103,8 @@
SocketNetAccessor();
~SocketNetAccessor();
- BinInputStream* makeNew(const XMLURL& urlSource);
- const XMLCh* getId() const;
+ virtual BinInputStream* makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
+ virtual const XMLCh* getId() const;
private :
static const XMLCh fgMyName[];
1.17 +44 -4 xml-xerces/c/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp
Index: UnixHTTPURLInputStream.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- UnixHTTPURLInputStream.cpp 11 Feb 2004 12:42:22 -0000 1.16
+++ UnixHTTPURLInputStream.cpp 11 May 2004 13:39:35 -0000 1.17
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.17 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.16 2004/02/11 12:42:22 cargilld
* Fix for bug 25541.
*
@@ -165,7 +168,7 @@
XERCES_CPP_NAMESPACE_BEGIN
-UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource)
+UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
: fSocket(0)
, fBytesProcessed(0)
, fMemoryManager(urlSource.getMemoryManager())
@@ -180,6 +183,16 @@
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
@@ -190,6 +203,11 @@
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
@@ -353,14 +371,22 @@
// Build up the http GET command to send to the server.
// To do: We should really support http 1.1. This implementation
// is weak.
- strcpy(fBuffer, GET);
+ if(httpInfo==0)
+ strcpy(fBuffer, GET);
+ else
+ switch(httpInfo->fHTTPMethod)
+ {
+ case XMLNetHTTPInfo::GET: strcpy(fBuffer, GET); break;
+ case XMLNetHTTPInfo::PUT: strcpy(fBuffer, PUT); break;
+ case XMLNetHTTPInfo::POST: strcpy(fBuffer, POST); break;
+ }
if (pathAsASCII != 0)
{
strcat(fBuffer, pathAsASCII);
}
if (queryAsASCII != 0)
- {
+ {
size_t n = strlen(fBuffer);
fBuffer[n] = chQuestion;
fBuffer[n+1] = chNull;
@@ -380,7 +406,12 @@
strcat(fBuffer,COLON);
strcat(fBuffer,portAsASCII);
}
- strcat(fBuffer, CRLF2X);
+ strcat(fBuffer, CRLF);
+
+ if(httpInfo!=0 && httpInfo->fHeaders!=0)
+ strncat(fBuffer,httpInfo->fHeaders,httpInfo->fHeadersLen);
+
+ strcat(fBuffer, CRLF);
// Send the http request
int lent = strlen(fBuffer);
@@ -390,6 +421,15 @@
{
ThrowXMLwithMemMgr1(NetAccessorException,
XMLExcepts::NetAcc_WriteSocket, urlSource.getURLText(), fMemoryManager);
+ }
+
+ if(httpInfo!=0 && httpInfo->fPayload!=0) {
+ int aLent = 0;
+ if ((aLent = write(s, (void *) httpInfo->fPayload, httpInfo->fPayloadLen)) != httpInfo->fPayloadLen)
+ {
+ ThrowXMLwithMemMgr1(NetAccessorException,
+ XMLExcepts::NetAcc_WriteSocket, urlSource.getURLText(), fMemoryManager);
+ }
}
//
1.7 +5 -1 xml-xerces/c/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp
Index: UnixHTTPURLInputStream.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- UnixHTTPURLInputStream.hpp 29 Jan 2004 11:51:20 -0000 1.6
+++ UnixHTTPURLInputStream.hpp 11 May 2004 13:39:35 -0000 1.7
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.7 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.6 2004/01/29 11:51:20 cargilld
* Code cleanup changes to get rid of various compiler diagnostic messages.
*
@@ -101,6 +104,7 @@
#include <xercesc/util/XMLURL.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
XERCES_CPP_NAMESPACE_BEGIN
@@ -112,7 +116,7 @@
class XMLUTIL_EXPORT UnixHTTPURLInputStream : public BinInputStream
{
public :
- UnixHTTPURLInputStream(const XMLURL& urlSource);
+ UnixHTTPURLInputStream(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
~UnixHTTPURLInputStream();
unsigned int curPos() const;
1.8 +29 -3 xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp
Index: BinHTTPURLInputStream.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- BinHTTPURLInputStream.cpp 17 Dec 2003 13:58:02 -0000 1.7
+++ BinHTTPURLInputStream.cpp 11 May 2004 13:39:35 -0000 1.8
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.8 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.7 2003/12/17 13:58:02 cargilld
* Platform update for memory management so that the static memory manager (one
* used to call Initialize) is only for static data.
@@ -296,7 +299,7 @@
}
-BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource)
+BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo /*=0*/)
: fSocketHandle(0)
, fBytesProcessed(0)
{
@@ -402,7 +405,15 @@
memset(fBuffer, 0, sizeof(fBuffer));
- strcpy(fBuffer, "GET ");
+ if(httpInfo==0)
+ strcpy(fBuffer, "GET ");
+ else {
+ switch(httpInfo->fHTTPMethod) {
+ case XMLNetHTTPInfo::GET: strcpy(fBuffer, "GET "); break;
+ case XMLNetHTTPInfo::PUT: strcpy(fBuffer, "PUT "); break;
+ case XMLNetHTTPInfo::POST: strcpy(fBuffer, "POST "); break;
+ }
+ }
strcat(fBuffer, pathAsCharStar);
if (queryAsCharStar != 0)
@@ -427,7 +438,12 @@
int i = strlen(fBuffer);
_itoa(portNumber, fBuffer+i, 10);
}
- strcat(fBuffer, "\r\n\r\n");
+ strcat(fBuffer, "\r\n");
+
+ if(httpInfo!=0 && httpInfo->fHeaders!=0)
+ strncat(fBuffer,httpInfo->fHeaders,httpInfo->fHeadersLen);
+
+ strcat(fBuffer, "\r\n");
// Send the http request
int lent = strlen(fBuffer);
@@ -439,6 +455,15 @@
XMLExcepts::NetAcc_WriteSocket, urlSource.getURLText(), fMemoryManager);
}
+ if(httpInfo!=0 && httpInfo->fPayload!=0) {
+ int aLent = 0;
+ if ((aLent = send(s, httpInfo->fPayload, httpInfo->fPayloadLen, 0)) != httpInfo->fPayloadLen)
+ {
+ // Call WSAGetLastError() to get the error number.
+ ThrowXMLwithMemMgr1(NetAccessorException,
+ XMLExcepts::NetAcc_WriteSocket, urlSource.getURLText(), fMemoryManager);
+ }
+ }
//
// get the response, check the http header for errors from the server.
1.5 +5 -2 xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.hpp
Index: BinHTTPURLInputStream.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BinHTTPURLInputStream.hpp 29 Jan 2004 11:51:20 -0000 1.4
+++ BinHTTPURLInputStream.hpp 11 May 2004 13:39:35 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.4 2004/01/29 11:51:20 cargilld
* Code cleanup changes to get rid of various compiler diagnostic messages.
*
@@ -105,7 +108,7 @@
#include <xercesc/util/XMLExceptMsgs.hpp>
#include <xercesc/util/BinInputStream.hpp>
#include <xercesc/util/Mutexes.hpp>
-
+#include <xercesc/util/XMLNetAccessor.hpp>
//
// This class implements the BinInputStream interface specified by the XML
@@ -119,7 +122,7 @@
class XMLUTIL_EXPORT BinHTTPURLInputStream : public BinInputStream
{
public :
- BinHTTPURLInputStream(const XMLURL& urlSource);
+ BinHTTPURLInputStream(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
~BinHTTPURLInputStream();
unsigned int curPos() const;
1.5 +3 -3 xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.cpp
Index: WinSockNetAccessor.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WinSockNetAccessor.cpp 17 Dec 2003 00:18:37 -0000 1.4
+++ WinSockNetAccessor.cpp 11 May 2004 13:39:35 -0000 1.5
@@ -92,7 +92,7 @@
}
-BinInputStream* WinSockNetAccessor::makeNew(const XMLURL& urlSource)
+BinInputStream* WinSockNetAccessor::makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo /*=0*/)
{
XMLURL::Protocols protocol = urlSource.getProtocol();
switch(protocol)
@@ -100,7 +100,7 @@
case XMLURL::HTTP:
{
BinHTTPURLInputStream* retStrm =
- new (urlSource.getMemoryManager()) BinHTTPURLInputStream(urlSource);
+ new (urlSource.getMemoryManager()) BinHTTPURLInputStream(urlSource, httpInfo);
return retStrm;
break;
}
1.4 +5 -2 xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.hpp
Index: WinSockNetAccessor.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WinSockNetAccessor.hpp 7 Mar 2003 18:15:49 -0000 1.3
+++ WinSockNetAccessor.hpp 11 May 2004 13:39:35 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.3 2003/03/07 18:15:49 tng
* Return a reference instead of void for operator=
*
@@ -100,8 +103,8 @@
WinSockNetAccessor();
~WinSockNetAccessor();
- BinInputStream* makeNew(const XMLURL& urlSource);
- const XMLCh* getId() const;
+ virtual BinInputStream* makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
+ virtual const XMLCh* getId() const;
private :
static const XMLCh fgMyName[];
1.6 +4 -2 xml-xerces/c/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.cpp
Index: LibWWWNetAccessor.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LibWWWNetAccessor.cpp 5 May 2004 22:08:07 -0000 1.5
+++ LibWWWNetAccessor.cpp 11 May 2004 13:39:35 -0000 1.6
@@ -106,13 +106,15 @@
}
-BinInputStream* LibWWWNetAccessor::makeNew(const XMLURL& urlSource)
+BinInputStream* LibWWWNetAccessor::makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
{
XMLURL::Protocols protocol = urlSource.getProtocol();
switch(protocol)
{
case XMLURL::HTTP:
{
+ if(httpInfo!=0 && httpInfo->fHTTPMethod!=XMLNetHTTPInfo::GET)
+ ThrowXML(NetAccessorException, XMLExcepts::NetAcc_UnsupportedMethod);
BinURLInputStream* retStrm =
new (urlSource.getMemoryManager()) BinURLInputStream(urlSource);
return retStrm;
1.4 +4 -1 xml-xerces/c/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.hpp
Index: LibWWWNetAccessor.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- LibWWWNetAccessor.hpp 7 Mar 2003 18:15:50 -0000 1.3
+++ LibWWWNetAccessor.hpp 11 May 2004 13:39:35 -0000 1.4
@@ -56,6 +56,9 @@
/**
* $Log$
+ * Revision 1.4 2004/05/11 13:39:35 amassari
+ * The net accessor input source now can be used to get data using PUT or POST, as well as GET
+ *
* Revision 1.3 2003/03/07 18:15:50 tng
* Return a reference instead of void for operator=
*
@@ -119,7 +122,7 @@
LibWWWNetAccessor();
~LibWWWNetAccessor();
- BinInputStream* makeNew(const XMLURL& urlSource);
+ BinInputStream* makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
const XMLCh* getId() const;
private :
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org