Question by
Ardito92ITA · Jun 06, 2016 at 09:28 AM ·
freezefreezinghttpwebrequesthttpsrequest
Https freezes the game for one second
When I make a request to the server, all the game freezes for a few seconds, I think that the game is waiting for a server response, there is a way to not wait for the server's response?
This is my code
using UnityEngine;
using System.IO;
using System.Net;
using System.Text;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
public class Request : MonoBehaviour
{
public void RequestFunction()
{
string output = RequestServer("page");
Debug.Log(output);
}
public string RequestServer(string page)
{
string output = "";
try
{
ServicePointManager.ServerCertificateValidationCallback = Validator;
string data;
// Create a request using a URL that can receive a post.
WebRequest request = WebRequest.Create("https://www.mys_ite_web/" + page);
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
string postData = "data=";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream ();
// Write the data to the request stream.
dataStream.Write (byteArray, 0, byteArray.Length);
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
// Display the status.
//Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
//Console.WriteLine(responseFromServer);
data=responseFromServer;
// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
output = data;
}
catch(System.Exception e)
{
Debug.Log(e);
}
return output;
}
public static bool Validator (object sender, X509Certificate certificate, X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
}
}
Comment
Your answer
Follow this Question
Related Questions
Unity freeze on certain condition. 0 Answers
Function runs fine the first time but crashes if I run it twice? 1 Answer
WWW class and UnityWebRequest no longer working in Unity 2017.3.0 5 Answers
HTTP GET Method in C# Unity 3D - How to target specific text or header 1 Answer
put more than one camera 0 Answers