- Home /
New UnityWebRequest How Can I Handle the responses ??
Hello everyone, I want to change my old codes to new classes because I want to build project to WebGL
I was using, WWW class for post requests and get responses
Sample Code for old usage
public IEnumerator SendRequest(string url, WWWForm form, ResponseMethod _responseMethod, bool callMethod = true)
{
WWW www = new WWW(url, form);
MessageLog("Method name: " + _responseMethod.Method.Name);
while (!www.isDone)
yield return null;
if (string.IsNullOrEmpty(www.error))
{
if (callMethod)
_responseMethod(www.text);
else
{
MessageLog("Error: " + www.error);
requestTryCount = 0;
ResponseTry(url, form, _responseMethod, callMethod);
}
}
else
{
MessageLog("Error: " + www.error);
requestTryCount = 0;
ResponseTry(url, form, _responseMethod, callMethod);
}
}
But, since I want to change my request handling system as UnityWebRequest class.
I'm writing this code,
public IEnumerator OnLoginButtonRelease()
{
WWWForm form = new WWWForm();
form.AddField("api_key",ApiKey);
form.AddField("l_username", UserNameInputField.text);
form.AddField("l_pass", PasswordInputField.text);
form.AddField("l_product", product);
form.AddField("l_sp", serviceProvider);
UnityWebRequest www = UnityWebRequest.Post(domainApiPrefix + "/Login/login2", form );
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
Debug.Log(form.data);
}
else
{
Debug.Log("Post request complete!" + " Response Code: " + www.responseCode);
}
}
I still could not figure out how can I get responses as text for new usage. I was using www.text property for older request system.
Pls help me.
Answer by berkanmamak · Mar 09, 2018 at 08:02 AM
I used DownloadHandler and it worked.
Here is my new code ;
public IEnumerator OnLoginButtonRelease()
{
WWWForm form = new WWWForm();
form.AddField("api_key",ApiKey);
form.AddField("l_username", UserNameInputField.text);
form.AddField("l_pass", PasswordInputField.text);
form.AddField("l_product", product);
form.AddField("l_sp", serviceProvider);
UnityWebRequest www = UnityWebRequest.Post(domainApiPrefix + "/Login/login2", form );
www.downloadHandler = new DownloadHandlerBuffer();
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
Debug.Log(form.data);
}
else
{
Debug.Log("Post request complete!" + " Response Code: " + www.responseCode);
string responseText = www.downloadHandler.text;
Debug.Log("Response Text:" + responseText);
}
}
Your answer
Follow this Question
Related Questions
Adding Custom Headers/Cookies to the UnityWebRequest.Post 1 Answer
http url not work in webgl (unity2019.3). 2 Answers
Connection slower with higher update rate using LLAPI. webgl 0 Answers
OAuth 2.0 Capture Redirect 0 Answers
Is it possible to get a networked WebGL build to run in single player mode? 2 Answers