Quantcast
Channel: Questions in topic: "httpwebrequest"
Viewing all articles
Browse latest Browse all 190

PATCH and DELETE methods - HTTP Requests problem

$
0
0
Hello ! I'm posting here today because I got a little problem. I have to make a Login menu in Unity. There is already an API, that I didn't make, I just have to send requests from Unity and analyze the responses. GET method is used to authenticate : GET /api/auth * *Request - first authentication (without token)* - `````` : (string) email address - `````` : (string) password I can use WWW class that supports GET method : IEnumerator Auth(){ string url = "127.0.0.1/api/auth?mail=" + mail + "&password=" + password; WWW www = new WWW(url); yield return www; if (!string.IsNullOrEmpty(www.error)){ Debug.Log(www.error); } else { Debug.Log(www.text); } } Tha't s working perfectly. To request a new pass, POST Method : **POST /api/passwordRenewal** * *Request* - `````` : email address I can use WWW class too : IEnumerator ResetPass(){ string url = "127.0.0.1/api/passwordRenewal"; WWWForm form = new WWWForm(); form.AddField("mail", mail); WWW www = new WWW(url, form); yield return www; if (!string.IsNullOrEmpty(www.error)){ Debug.Log(www.error); } else { Debug.Log(www.text); } } That's working perfectly too. Here is my problem : To change the password, PATCH method is used : **PATCH /api/auth** * *Request* - `````` : (string) new password - `````` : (string) current token But not supported by WWW class, so I searched and tried to use WebRequest class : public void ChangePass(){ string json = JsonUtility.ToJson(infos); // infos contains new_pw and old_token WebRequest request = WebRequest.Create ("http://127.0.0.1/api/auth"); request.Method = "PATCH"; byte[] byteArray = Encoding.UTF8.GetBytes (json); request.ContentType = "application/json"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream (); dataStream.Write (byteArray, 0, byteArray.Length); dataStream.Close (); WebResponse response = request.GetResponse (); Debug.Log(((HttpWebResponse)response).StatusDescription); dataStream = response.GetResponseStream (); StreamReader reader = new StreamReader (dataStream); string responseFromServer = reader.ReadToEnd (); Debug.Log(responseFromServer); reader.Close (); dataStream.Close (); response.Close (); } But I got a Bad Request (400), I don't really know how to use the PATCH method And to Logout, the DELETE method is used : **DELETE /api/auth** * *Request* - `````` : (string) token Here again I tried to use WebRequest class, but I don't know how to give the "token" information, I tried to "send it" but I got an error like "Can't send data with DELETE" And with the following code : public void Logout(){ string url = "http://127.0.0.1/api/auth"; WebRequest request = WebRequest.Create(url); request.Method = "DELETE"; WebResponse response = request.GetResponse(); } I got a bad request (400) I tried to pass the token in the url (?token=xxx) It still don't work. I never tried to send Http requests, and I don't know a lot about this, so I maybe missed important things ? If someone knows how I can solve my problem, that would be great ! (I'm new to c#, I started to use it 3 months ago when I started to use Unity ..) Thank you for your time !

Viewing all articles
Browse latest Browse all 190

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>