2017-04-08 11 views
5

से प्रतिक्रिया प्राप्त करते समय, एकता पर पंजीकरण दृश्य बना रहा हूं। बैकएंड पर मेरे पास मोंगोडीबी के साथ नोडजेएस सर्वर है। पंजीकरण सफल है और मोंगो पर डेटा भी बचाया गया है।UnityWebRequest.download हैंडलर नल सर्वर

यह रजिस्टर

api.post('/register', (req,res) => { 
Account.register(new Account({username: req.body.username}), req.body.password, function(err, account){ 
    console.log("acc: "+account); 
    if(err){ 
    if (err.name == "UserExistsError") { 
     console.log("User Exists"); 
     return res.status(409).send(err); 
    }else { 
     console.log("User Error 500"); 
     return res.status(500).send(err); 
    } 
    }else { 
    let newUser = new User(); 
    newUser.accountid = account._id; 
    newUser.name = req.body.fullname; 
    newUser.gender = req.body.gender; 
    newUser.role = req.body.role; 
    newUser.country = req.body.country; 
    newUser.coins = req.body.coins; 
    newUser.save(err => { 
     if(err){ 
     console.log(err); 
     return res.send(err); 
     }else{ 
     console.log('user saved'); 
     res.json({ message: 'User saved' }); 
     } 
    }); 
    passport.authenticate(
     'local', { 
     session: false 
     })(req,res,() => { 
     res.json({ registermsg: 'Successfully created new account'}); 
     }); 
    } 
}); 
}); 

के लिए मेरे NodeJS एपीआई है और ये मेरे पोस्ट में एकता सी #

IEnumerator Post(string b) { 

    byte[] bytes = System.Text.Encoding.ASCII.GetBytes(b); 

    using (UnityWebRequest www = new UnityWebRequest(BASE_URL, UnityWebRequest.kHttpVerbPOST)) { 
     UploadHandlerRaw uH = new UploadHandlerRaw(bytes); 
     www.uploadHandler = uH; 
     www.SetRequestHeader("Content-Type", "application/json"); 
     yield return www.Send(); 

     if (www.isError) { 
      Debug.Log(www.error); 
     } else { 
      lbltext.text = "User Registered"; 
      Debug.Log(www.ToString()); 
      Debug.Log(www.downloadHandler.text); 
     } 
    } 
} 

मैं Debug.Log(www.downloadHandler.text); कोशिश कर रहा हूँ, लेकिन मैं NullReferenceException मिल सह दिनचर्या है।

मैं पूछना चाहता हूं, क्या मैं अपने एपीआई में प्रतिक्रिया वापस करने के लिए उपयोग कर रहा हूं? यदि हां, मैं एकता पक्ष में उस प्रतिक्रिया का उपयोग कैसे कर सकता हूं।

उत्तर

5

UnityWebRequest.Post, UnityWebRequest.Get और अन्य UnityWebRequestfunctions कि UnityWebRequest का नया उदाहरण बनाता है, स्वचालित रूप से DownloadHandlerBuffer इसे से जुड़े होगा।

अब, अगर आप UnityWebRequest निर्माता के साथ UnityWebRequest का नया उदाहरण बनाने के लिए, DownloadHandlerनहीं कि नया उदाहरण से जुड़ी है। आपको DownloadHandlerBuffer के साथ मैन्युअल रूप से ऐसा करना होगा।

IEnumerator Post(string b) 
{ 

    byte[] bytes = System.Text.Encoding.ASCII.GetBytes(b); 

    using (UnityWebRequest www = new UnityWebRequest(BASE_URL, UnityWebRequest.kHttpVerbPOST)) 
    { 
     UploadHandlerRaw uH = new UploadHandlerRaw(bytes); 
     DownloadHandlerBuffer dH = new DownloadHandlerBuffer(); 

     www.uploadHandler = uH; 
     www.downloadHandler = dH; 
     www.SetRequestHeader("Content-Type", "application/json"); 
     yield return www.Send(); 

     if (www.isError) 
     { 
      Debug.Log(www.error); 
     } 
     else 
     { 
      lbltext.text = "User Registered"; 
      Debug.Log(www.ToString()); 
      Debug.Log(www.downloadHandler.text); 
     } 
    } 
} 
+0

धन्यवाद, मैं 'डाउनलोडहैंडलर बफर' का उपयोग करने पर उलझन में था। लेकिन अब मुझे 'सेट होने के बाद हेडर भेज नहीं सकते हैं।' मैंने बहुत सारे प्रश्न पढ़े लेकिन मेरे कोड को उनके अनुसार काम नहीं कर सका। –

+0

मैं "यूनिटीवेबआरक्वेट.डाउनलोड हैंडलर रिटर्निंग नल" शीर्षक का नाम बदलने की योजना बना रहा था। इससे कई लोगों की मदद मिलेगी जो इस समस्या में भाग लेंगे। अपनी नई हेडर समस्या के लिए एक नया प्रश्न बनाना अच्छा लगेगा। बेहतर अगर आप वर्णन करते हैं कि समस्या क्या है। – Programmer

+0

ठीक है, मैं सवाल बदल दूंगा। –

संबंधित मुद्दे