75 bool isEmpty()
const noexcept;
78 bool isWellFormed()
const;
101 String getQueryString()
const;
106 String getAnchorString()
const;
116 bool isLocalFile()
const;
127 File getLocalFile()
const;
137 String getFileName()
const;
167 URL getParentURL()
const;
222 const String& mimeType)
const;
237 const String& mimeType)
const;
296 bool launchInDefaultBrowser()
const;
310 enum class ParameterHandling
387 ParameterHandling getParameterHandling()
const noexcept {
return parameterHandling; }
388 std::function<
bool (
int,
int)> getProgressCallback()
const noexcept {
return progressCallback; }
389 String getExtraHeaders()
const noexcept {
return extraHeaders; }
390 int getConnectionTimeoutMs()
const noexcept {
return connectionTimeOutMs; }
391 StringPairArray* getResponseHeaders()
const noexcept {
return responseHeaders; }
392 int* getStatusCode()
const noexcept {
return statusCode; }
393 int getNumRedirectsToFollow()
const noexcept {
return numRedirectsToFollow; }
394 String getHttpRequestCmd()
const noexcept {
return httpRequestCmd; }
398 const ParameterHandling parameterHandling;
400 std::function<
bool (
int,
int)> progressCallback =
nullptr;
402 int connectionTimeOutMs = 0;
404 int* statusCode =
nullptr;
405 int numRedirectsToFollow = 5;
427 std::unique_ptr<InputStream> createInputStream (
const InputStreamOptions& options)
const;
434 std::unique_ptr<OutputStream> createOutputStream()
const;
465 bool usePost =
false;
486 template <
typename Member,
typename Value>
490 copy.*
member = std::forward<Value> (value);
536 int64 contentLength = -1, downloaded = 0;
537 bool finished =
false, error =
false;
554 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
DownloadTask)
558 [[
deprecated (
"Use the overload with a DownloadTaskOptions argument instead")]]
559 std::unique_ptr<DownloadTask> downloadToFile (
const File& targetLocation,
561 DownloadTaskListener* listener =
nullptr,
624 std::unique_ptr<XmlElement> readEntireXmlStream (
bool usePostCommand =
false)
const;
665 static URL createWithoutParsing (
const String& url);
675 [[
deprecated (
"New code should use the method which takes an InputStreamOptions argument instead.")]]
677 OpenStreamProgressCallback* progressCallback =
nullptr,
680 int connectionTimeOutMs = 0,
682 int* statusCode =
nullptr,
683 int numRedirectsToFollow = 5,
684 String httpRequestCmd = {})
const;
690 struct Bookmark :
public ReferenceCountedObject
692 using Ptr = ReferenceCountedObjectPtr<Bookmark>;
700 Bookmark::Ptr bookmark;
702 friend void setURLBookmark (URL&,
void*);
703 friend void* getURLBookmark (URL&);
707 struct Upload :
public ReferenceCountedObject
709 Upload (
const String&,
const String&,
const String&,
const File&, MemoryBlock*);
710 String parameterName, filename, mimeType;
712 std::unique_ptr<MemoryBlock> data;
714 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Upload)
718 friend class WebInputStream;
720 URL (
const String&,
int);
722 void addParameter (
const String&,
const String&);
723 bool hasBodyDataToSend()
const;
724 void createHeadersAndPostData (String&, MemoryBlock&,
bool)
const;
725 URL withUpload (Upload*)
const;
727 static ParameterHandling toHandling (
bool);
728 static File fileFromFileSchemeURL (
const URL&);
729 String getDomainInternal (
bool)
const;
733 MemoryBlock postData;
734 StringArray parameterNames, parameterValues;
737 ReferenceCountedArray<Upload> filesToUpload;
740 JUCE_LEAK_DETECTOR (URL)