本文整理汇总了C#中HTTPRequest.SetHeader方法的典型用法代码示例。如果您正苦于以下问题:C# HTTPRequest.SetHeader方法的具体用法?C# HTTPRequest.SetHeader怎么用?C# HTTPRequest.SetHeader使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTTPRequest
的用法示例。
在下文中一共展示了HTTPRequest.SetHeader方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PrepareRequest
public override void PrepareRequest(HTTPRequest request)
{
if (Form.headers.ContainsKey("Content-Type"))
request.SetHeader("Content-Type", Form.headers["Content-Type"] as string);
else
request.SetHeader("Content-Type", "application/x-www-form-urlencoded");
}
示例2: Send
public void Send(System.Collections.Generic.List<Packet> packets)
{
if (State != TransportStates.Open)
throw new Exception("Transport is not in Open state!");
if (IsRequestInProgress)
throw new Exception("Sending packets are still in progress!");
byte[] buffer = null;
try
{
buffer = packets[0].EncodeBinary();
for (int i = 1; i < packets.Count; ++i)
{
byte[] tmpBuffer = packets[i].EncodeBinary();
Array.Resize(ref buffer, buffer.Length + tmpBuffer.Length);
Array.Copy(tmpBuffer, 0, buffer, buffer.Length - tmpBuffer.Length, tmpBuffer.Length);
}
packets.Clear();
}
catch (Exception ex)
{
(Manager as IManager).EmitError(SocketIOErrors.Internal, ex.Message + " " + ex.StackTrace);
return;
}
LastRequest = new HTTPRequest(new Uri(string.Format("{0}?EIO={1}&transport=polling&t={2}-{3}&sid={4}{5}&b64=true",
Manager.Uri.ToString(),
SocketManager.MinProtocolVersion,
Manager.Timestamp.ToString(),
Manager.RequestCounter++.ToString(),
Manager.Handshake.Sid,
!Manager.Options.QueryParamsOnlyForHandshake ? Manager.Options.BuildQueryParams() : string.Empty)),
HTTPMethods.Post,
OnRequestFinished);
// Don't even try to cache it
LastRequest.DisableCache = true;
LastRequest.SetHeader("Content-Type", "application/octet-stream");
LastRequest.RawData = buffer;
LastRequest.Send();
}
示例3: PrepareRequest
public override void PrepareRequest(HTTPRequest request)
{
request.SetHeader("Content-Type", "application/x-www-form-urlencoded");
}
示例4: WebSocket
/// <summary>
/// Creates a WebSocket instance from the given uri, protocol and origin.
/// </summary>
/// <param name="uri">The uri of the WebSocket server</param>
/// <param name="origin">Servers that are not intended to process input from any web page but only for certain sites SHOULD verify the |Origin| field is an origin they expect.
/// If the origin indicated is unacceptable to the server, then it SHOULD respond to the WebSocket handshake with a reply containing HTTP 403 Forbidden status code.</param>
/// <param name="protocol">The application-level protocol that the client want to use(eg. "chat", "leaderboard", etc.). Can be null or empty string if not used.</param>
public WebSocket(Uri uri, string origin, string protocol
#if (!UNITY_WEBGL || UNITY_EDITOR)
, params IExtension[] extensions
#endif
)
{
#if (!UNITY_WEBGL || UNITY_EDITOR)
// Set up some default values.
this.PingFrequency = 1000;
// If there no port set in the uri, we must set it now.
if (uri.Port == -1)
// Somehow if i use the UriBuilder it's not the same as if the uri is constructed from a string...
//uri = new UriBuilder(uri.Scheme, uri.Host, uri.Scheme.Equals("wss", StringComparison.OrdinalIgnoreCase) ? 443 : 80, uri.PathAndQuery).Uri;
uri = new Uri(uri.Scheme + "://" + uri.Host + ":" + (uri.Scheme.Equals("wss", StringComparison.OrdinalIgnoreCase) ? "443" : "80") + uri.PathAndQuery);
InternalRequest = new HTTPRequest(uri, OnInternalRequestCallback);
// Called when the regular GET request is successfully upgraded to WebSocket
InternalRequest.OnUpgraded = OnInternalRequestUpgraded;
//http://tools.ietf.org/html/rfc6455#section-4
//The request MUST contain a |Host| header field whose value contains /host/ plus optionally ":" followed by /port/ (when not using the default port).
InternalRequest.SetHeader("Host", uri.Host + ":" + uri.Port);
// The request MUST contain an |Upgrade| header field whose value MUST include the "websocket" keyword.
InternalRequest.SetHeader("Upgrade", "websocket");
// The request MUST contain a |Connection| header field whose value MUST include the "Upgrade" token.
InternalRequest.SetHeader("Connection", "keep-alive, Upgrade");
// The request MUST include a header field with the name |Sec-WebSocket-Key|. The value of this header field MUST be a nonce consisting of a
// randomly selected 16-byte value that has been base64-encoded (see Section 4 of [RFC4648]). The nonce MUST be selected randomly for each connection.
InternalRequest.SetHeader("Sec-WebSocket-Key", GetSecKey(new object[] { this, InternalRequest, uri, new object() }));
// The request MUST include a header field with the name |Origin| [RFC6454] if the request is coming from a browser client.
// If the connection is from a non-browser client, the request MAY include this header field if the semantics of that client match the use-case described here for browser clients.
// More on Origin Considerations: http://tools.ietf.org/html/rfc6455#section-10.2
if (!string.IsNullOrEmpty(origin))
InternalRequest.SetHeader("Origin", origin);
// The request MUST include a header field with the name |Sec-WebSocket-Version|. The value of this header field MUST be 13.
InternalRequest.SetHeader("Sec-WebSocket-Version", "13");
if (!string.IsNullOrEmpty(protocol))
InternalRequest.SetHeader("Sec-WebSocket-Protocol", protocol);
// Disable caching
InternalRequest.SetHeader("Cache-Control", "no-cache");
InternalRequest.SetHeader("Pragma", "no-cache");
this.Extensions = extensions;
#if !BESTHTTP_DISABLE_CACHING && (!UNITY_WEBGL || UNITY_EDITOR)
InternalRequest.DisableCache = true;
#endif
#if !BESTHTTP_DISABLE_PROXY
// WebSocket is not a request-response based protocol, so we need a 'tunnel' through the proxy
if (HTTPManager.Proxy != null)
InternalRequest.Proxy = new HTTPProxy(HTTPManager.Proxy.Address,
HTTPManager.Proxy.Credentials,
false, /*turn on 'tunneling'*/
false, /*sendWholeUri*/
HTTPManager.Proxy.NonTransparentForHTTPS);
#endif
#else
this.Uri = uri;
this.Protocol = protocol;
#endif
}
示例5: WebSocket
/// <summary>
/// Creates a WebSocket instance from the given uri, protocol and origin.
/// </summary>
/// <param name="uri">The uri of the WebSocket server</param>
/// <param name="origin">Servers that are not intended to process input from any web page but only for certain sites SHOULD verify the |Origin| field is an origin they expect.
/// If the origin indicated is unacceptable to the server, then it SHOULD respond to the WebSocket handshake with a reply containing HTTP 403 Forbidden status code.</param>
/// <param name="protocol">The application-level protocol that the client want to use(eg. "chat", "leaderboard", etc.). Can be null or empty string if not used.</param>
public WebSocket(Uri uri, string origin, string protocol = "")
{
// Set up some default values.
this.PingFrequency = 1000;
// If there no port set in the uri, we must set it now.
if (uri.Port == -1)
// Somehow if i use the UriBuilder its not the same as if the uri is constructed from a string...
//uri = new UriBuilder(uri.Scheme, uri.Host, uri.Scheme.Equals("wss", StringComparison.OrdinalIgnoreCase) ? 443 : 80, uri.PathAndQuery).Uri;
uri = new Uri(uri.Scheme + "://" + uri.Host + ":" + (uri.Scheme.Equals("wss", StringComparison.OrdinalIgnoreCase) ? "443" : "80") + uri.PathAndQuery);
InternalRequest = new HTTPRequest(uri, (req, resp) => {
if ((resp == null || req.Exception != null) && OnError != null || (resp != null && resp.StatusCode != 101))
OnError(this, req.Exception);
});
//http://tools.ietf.org/html/rfc6455#section-4
//The request MUST contain a |Host| header field whose value contains /host/ plus optionally ":" followed by /port/ (when not using the default port).
InternalRequest.SetHeader("Host", uri.Host + ":" + uri.Port);
// The request MUST contain an |Upgrade| header field whose value MUST include the "websocket" keyword.
InternalRequest.SetHeader("Upgrade", "websocket");
// The request MUST contain a |Connection| header field whose value MUST include the "Upgrade" token.
InternalRequest.SetHeader("Connection", "keep-alive, Upgrade");
// The request MUST include a header field with the name |Sec-WebSocket-Key|. The value of this header field MUST be a nonce consisting of a
// randomly selected 16-byte value that has been base64-encoded (see Section 4 of [RFC4648]). The nonce MUST be selected randomly for each connection.
InternalRequest.SetHeader("Sec-WebSocket-Key", GetSecKey(new object[] { this, InternalRequest, uri, new object() }));
// The request MUST include a header field with the name |Origin| [RFC6454] if the request is coming from a browser client.
// If the connection is from a non-browser client, the request MAY include this header field if the semantics of that client match the use-case described here for browser clients.
// More on Origin Considerations: http://tools.ietf.org/html/rfc6455#section-10.2
if (!string.IsNullOrEmpty(origin))
InternalRequest.SetHeader("Origin", origin);
// The request MUST include a header field with the name |Sec-WebSocket-Version|. The value of this header field MUST be 13.
InternalRequest.SetHeader("Sec-WebSocket-Version", "13");
if (!string.IsNullOrEmpty(protocol))
InternalRequest.SetHeader("Sec-WebSocket-Protocol", protocol);
// Disable caching
InternalRequest.SetHeader("Cache-Control", "no-cache");
InternalRequest.SetHeader("Pragma", "no-cache");
InternalRequest.OnUpgraded = (req, resp) =>
{
webSocket = resp as WebSocketResponse;
if (webSocket == null)
{
if (OnError != null)
OnError(this, req.Exception);
return;
}
if (OnOpen != null)
OnOpen(this);
webSocket.OnText = (ws, msg) => {
if (OnMessage != null)
OnMessage(this, msg);
};
webSocket.OnBinary = (ws, bin) => {
if (OnBinary != null)
OnBinary(this, bin);
};
webSocket.OnClosed = (ws, code, msg) => {
if (OnClosed != null)
OnClosed(this, code, msg);
};
if (OnIncompleteFrame != null)
webSocket.OnIncompleteFrame = (ws, frame) => {
if (OnIncompleteFrame != null)
OnIncompleteFrame(this, frame);
};
if (StartPingThread)
webSocket.StartPinging(Math.Min(PingFrequency, 100));
};
}