2017-08-02 33 views
0

我想在統一3d中調用一個登錄api與兩個json參數的用戶名和密碼。統一三維電話與json請求後的api

我跟隨了很多帖子在stackoverflow上。但我的請求參數不在服務器上。如果我從我的android應用程序和郵遞員和chorome調用這個API,它在那裏工作得很好。

public IEnumerator CallLogin(string username,string password) 
    { 
     WWWForm form = new WWWForm(); 
     form.AddField("username", username); 
     form.AddField("password", password); 

     UnityWebRequest www = UnityWebRequest.Post("/apis/login", form); 
     yield return www.Send(); 

     if (www.error != null) 
     { 
      Debug.Log("Erro: " + www.error); 
     } 
     else 
     { 
      Debug.Log("All OK"); 
      Debug.Log("Text: " + www.downloadHandler.text); 
     } 
    } 

所以我的問題是如何調用與統一3d中的json請求後api。

請幫忙。

+0

我們做這一切的時候。你可能會充實你如何創建請求,代碼不應該很長,並且你如何在服務器端接收它。 –

+0

請發佈您的代碼。還張貼JSON或要求您必須與郵遞員一起工作。這將有助於確定事情變壞的地方。 – Programmer

+0

@RetiredNinja:請檢查我的代碼,我正在使用此方法調用API。你可以使用用戶名「yogi」和密碼「himanshu」。 –

回答

1

您需要手動設置內容標題和味精的身體,你的表單數據字符串轉換爲JSON字符串和發送如何參數CallLogin:

public IEnumerator CallLogin(string url,string logindataJsonString) 
{ 
    var request = new UnityWebRequest (url, "POST"); 
    byte[] bodyRaw = Encoding.UTF8.GetBytes(logindataJsonString); 
    request.uploadHandler = (UploadHandler) new UploadHandlerRaw(bodyRaw); 
    request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); 
    request.SetRequestHeader("Content-Type", "application/json"); 
    yield return request.Send(); 

    if (www.error != null) 
    { 
     Debug.Log("Erro: " + www.error); 
    } 
    else 
    { 
     Debug.Log("All OK"); 
     Debug.Log("Status Code: " + request.responseCode); 
    } 

}