UnityWebRequestを使ってBasic認証する
UnityWebRequestを使ってBasic認証する方法です。 サンプルコードのBasic認証のテストとして以下のサイトを使わせていただきました。
1. コード
以下のスクリプトを適当なGameObjectにアタッチします。
using System.Collections; using UnityEngine; using UnityEngine.Networking; public class MainScript : MonoBehaviour { private string url = "http://leggiero.sakura.ne.jp/xxxxbasic_auth_testxxxx/secret/kaiin_page_top.htm"; void Start() { StartCoroutine(WebRequest("kaiin", "naisho")); } IEnumerator WebRequest(string id, string pass) { UnityWebRequest request = UnityWebRequest.Get(url); // Basic認証用のAUTHORIZATIONヘッダー付加 string authorization = authenticate(id, pass); request.SetRequestHeader("AUTHORIZATION", authorization); yield return request.SendWebRequest(); if (request.isNetworkError) { Debug.Log(request.error); } else { Debug.Log(request.responseCode); } } string authenticate(string username, string password) { string auth = username + ":" + password; auth = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(auth)); auth = "Basic " + auth; return auth; } }
2. 実行結果
認証に失敗すると 401
(Unauthorized)
成功すると 200
(OK)が返ります。
返り値のbodyは request.downloadHandler.text
で取得することができます。