51 URL (
const URL&) =
default;
52 URL& operator= (
const URL&) =
default;
54 URL& operator= (
URL&&) =
default;
66 bool operator== (
const URL&)
const;
67 bool operator!= (
const URL&)
const;
76 String toString (
bool includeGetParameters)
const;
79 bool isEmpty() const noexcept;
82 bool isWellFormed() const;
96 String getSubPath (
bool includeGetParameters = false) const;
101 String getQueryString() const;
110 bool isLocalFile() const;
121 File getLocalFile() const;
130 String getFileName() const;
142 URL withNewDomainAndPath (const
String& newFullPath) const;
149 URL withNewSubPath (const
String& newPath) const;
154 URL getParentURL() const;
166 URL getChildURL (const
String& subPath) const;
178 URL withParameter (const
String& parameterName,
179 const
String& parameterValue) const;
198 URL withFileToUpload (const
String& parameterName,
199 const
File& fileToUpload,
200 const
String& mimeType) const;
211 URL withDataToUpload (const
String& parameterName,
214 const
String& mimeType) const;
226 const
StringArray& getParameterNames() const noexcept {
return parameterNames; }
254 URL withPOSTData (
const String& postData)
const;
280 bool launchInDefaultBrowser()
const;
286 static bool isProbablyAWebsiteURL (
const String& possibleURL);
291 static bool isProbablyAnEmailAddress (
const String& possibleEmailAddress);
343 InputStream* createInputStream (
bool doPostLikeRequest,
345 void* progressCallbackContext =
nullptr,
347 int connectionTimeOutMs = 0,
349 int* statusCode =
nullptr,
350 int numRedirectsToFollow = 5,
351 String httpRequestCmd = {})
const;
358 OutputStream* createOutputStream()
const;
379 virtual void progress (
URL::DownloadTask* task, int64 bytesDownloaded, int64 totalLength);
409 int64 contentLength = -1, downloaded = 0;
410 bool finished =
false, error =
false;
423 static void juce_iosURLSessionNotify (
const String&);
427 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
DownloadTask)
442 bool usePostCommand =
false);
458 bool readEntireBinaryStream (
MemoryBlock& destData,
459 bool usePostCommand =
false)
const;
475 String readEntireTextStream (
bool usePostCommand =
false)
const;
493 std::unique_ptr<XmlElement> readEntireXmlStream (
bool usePostCommand =
false)
const;
514 static String addEscapeChars (
const String& stringToAddEscapeCharsTo,
516 bool roundBracketsAreLegal =
true);
527 static String removeEscapeChars (
const String& stringToRemoveEscapeCharsFrom);
533 static URL createWithoutParsing (
const String& url);
543 static File fileFromFileSchemeURL (
const URL&);
544 String getDomainInternal (
bool)
const;
549 String parameterName, filename, mimeType;
551 std::unique_ptr<MemoryBlock> data;
553 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Upload)
569 Bookmark::Ptr bookmark;
571 friend void setURLBookmark (URL&,
void*);
572 friend void* getURLBookmark (URL&);
575 URL (
const String&,
int);
577 void addParameter (
const String&,
const String&);
578 void createHeadersAndPostData (String&, MemoryBlock&)
const;
579 URL withUpload (Upload*)
const;
581 JUCE_LEAK_DETECTOR (URL)