Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


UnityWebRequest

Provides methods to communicate with web servers.
Read time 6 minutesLast updated 4 days ago

Definition

public class UnityWebRequest : IDisposable

Remarks

UnityWebRequest
handles the flow of HTTP communication with web servers. To post-process downloaded data and pre-process uploaded data, use DownloadHandler and UploadHandler respectively.
UnityWebRequest
includes static utility functions that return
UnityWebRequest
instances configured for common use cases. For example:
To send a web request from a
UnityWebRequest
instance, call UnityWebRequest.SendWebRequest. After the
UnityWebRequest
begins to communicate with a remote server, you can't change any of the properties in that
UnityWebRequest
instance. HTTPS is supported and the server certificate is validated against the root certificate store available on the system the app runs on. Validation can be disabled (for example, for development server using self-signed certificate) or changed to custom handling by assigning the UnityWebRequest.certificateHandler property.
Depending on the platform your application runs on,
UnityWebRequest
either sets the User-Agent header itself or leaves it for the operating system to set.
UnityWebRequest
sets the
User-Agent
header for all platforms except iOS, Xbox platforms, and WebGL.
Note: If the device that the application runs on uses proxy settings,
UnityWebRequest
applies the proxy settings after the application sends the request. Note:
UnityWebRequest
does not support WPAD PAC configuration with multiple proxy failover chain for the platforms it is supported. In case such configuration is used,
UnityWebRequest
will use the first proxy in the chain, and will not use other failover proxy in the chain in case of a request failure.

Examples

using UnityEngine;using System.Collections;using UnityEngine.Networking;public class MyBehaviour : MonoBehaviour{ void Start() { StartCoroutine(GetText()); } IEnumerator GetText() { UnityWebRequest www = UnityWebRequest.Get("https://www.my-server.com"); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { // Show results as text Debug.Log(www.downloadHandler.text); // Or retrieve results as binary data byte[] results = www.downloadHandler.data; } }}

Static Fields

Value

Description

kHttpVerbCREATEThe string "CREATE", commonly used as the verb for an HTTP CREATE request.
kHttpVerbDELETEThe string "DELETE", commonly used as the verb for an HTTP DELETE request.
kHttpVerbGETThe string "GET", commonly used as the verb for an HTTP GET request.
kHttpVerbHEADThe string "HEAD", commonly used as the verb for an HTTP HEAD request.
kHttpVerbPOSTThe string "POST", commonly used as the verb for an HTTP POST request.
kHttpVerbPUTThe string "PUT", commonly used as the verb for an HTTP PUT request.

Constructors

Constructor

Description

UnityWebRequest()Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.
UnityWebRequest(System.String)Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.
UnityWebRequest(System.String,System.String)Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.
UnityWebRequest(System.String,System.String,UnityEngine.Networking.DownloadHandler,UnityEngine.Networking.UploadHandler)Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.
UnityWebRequest(System.Uri)Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.
UnityWebRequest(System.Uri,System.String)Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.
UnityWebRequest(System.Uri,System.String,UnityEngine.Networking.DownloadHandler,UnityEngine.Networking.UploadHandler)Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is
GET
.

Properties

Property

Description

certificateHandlerHolds a reference to a CertificateHandler object, which manages certificate validation for this UnityWebRequest.
disposeCertificateHandlerOnDisposeIf true, any CertificateHandler attached to this UnityWebRequest will have CertificateHandler.Dispose called automatically when UnityWebRequest.Dispose is called.
disposeDownloadHandlerOnDisposeIf true, any DownloadHandler attached to this UnityWebRequest will have DownloadHandler.Dispose() called automatically when UnityWebRequest.Dispose is called.
disposeUploadHandlerOnDisposeIf true, any UploadHandler attached to this UnityWebRequest will have UploadHandler.Dispose() called automatically when UnityWebRequest.Dispose is called.
downloadedBytesReturns the number of bytes of body data the system has downloaded from the remote server. (Read Only)
downloadHandlerHolds a reference to a DownloadHandler object, which manages body data received from the remote server by this UnityWebRequest.
downloadProgressReturns a floating-point value between 0.0 and 1.0, indicating the progress of downloading body data from the server. (Read Only)
errorA human-readable string describing any system errors encountered by this UnityWebRequest object while handling HTTP requests or responses. The default value is
null
. (Read Only)
httpForcedVersionForce the version of HTTP used when making web requests with UnityWebRequest.
isDoneReturns
true
after the UnityWebRequest has finished communicating with the remote server. (Read Only)
isModifiableReturns
true
while a UnityWebRequest’s configuration properties can be altered. (Read Only)
methodDefines the HTTP verb used by this UnityWebRequest, such as
GET
or
POST
.
redirectLimitIndicates the number of redirects that this UnityWebRequest follows before halting with a
Redirect Limit Exceeded
system error.
responseCodeThe numeric HTTP response code returned by the server, such as
200
,
404
or
500
. (Read Only)
resultThe result of this UnityWebRequest.
timeoutThe number of seconds after which UnityWebRequest attempts to abort the request if no response is received.
uploadedBytesReturns the number of bytes of body data the system has uploaded to the remote server. (Read Only)
uploadHandlerHolds a reference to the UploadHandler object which manages body data to be uploaded to the remote server.
uploadProgressReturns a floating-point value between 0.0 and 1.0, indicating the progress of uploading body data to the server.
uriDefines the target URI for the UnityWebRequest to communicate with.
urlDefines the target URL for the UnityWebRequest to communicate with.
useHttpContinueDetermines whether this UnityWebRequest will include
Expect: 100-Continue
in its outgoing request headers. (Default:
true
).

Methods

Method

Description

AbortIf in progress, halts the UnityWebRequest as soon as possible.
DisposeSignals that this UnityWebRequest is no longer being used, and should clean up any resources it is using.
GetRequestHeaderRetrieves the value of a custom request header.
GetResponseHeaderRetrieves the value of a response header from the latest HTTP response received.
GetResponseHeadersRetrieves a dictionary containing all the response headers received by this UnityWebRequest in the latest HTTP response.
GetResponseTrailerRetrieves the value of a response trailer from the latest HTTP response received.
GetResponseTrailersRetrieves a dictionary containing all the response trailers received by this UnityWebRequest in the latest HTTP response.
SendWebRequestBegin communicating with the remote server.
SetRequestHeaderSet a HTTP request header to a custom value.

Static Methods

Method

Description

ClearCookieCacheClears stored cookies from the cache.
DeleteCreates a UnityWebRequest configured for HTTP
DELETE
.
EscapeURLEscapes characters in a string to ensure they are URL-friendly.
GenerateBoundaryGenerate a random 40-byte array for use as a multipart form boundary.
GetCreate a UnityWebRequest for HTTP GET.
HeadCreates a UnityWebRequest configured to send a HTTP
HEAD
request.
PostCreate a UnityWebRequest configured to send form data to a server via HTTP
POST
.
PostWwwFormCreates a UnityWebRequest configured to send form data to a server via HTTP
POST
.
PutCreates a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.
SerializeFormSectionsConverts a List of IMultipartFormSection objects into a byte array containing raw multipart form data.
SerializeSimpleFormSerialize a dictionary of strings into a byte array containing URL-encoded UTF8 characters.
UnEscapeURLConverts URL-friendly escape sequences back to normal text.

Enums

Enum

Description

UnityWebRequest.ResultDefines codes describing the possible outcomes of a UnityWebRequest.