2015-10-22 11 views
6

प्राप्त करें मैं कुछ आराम API अनुरोध के लिए यूनिटी डब्ल्यूडब्ल्यूडब्ल्यू के साथ काम कर रहा हूं। लेकिन यह प्रतिक्रिया स्थिति प्राप्त करने के लिए समर्थन नहीं करता है (केवल पाठ और त्रुटि लौटाएं)। इसके लिए कोई समाधान? धन्यवाद!यूनिटी डब्ल्यूडब्ल्यूडब्ल्यू प्रतिक्रिया स्थिति कोड

+4

भविष्य में संदर्भ के लिए::

इस चाल करने के लिए लगता है कि आप एक 301 रीडायरेक्ट एक त्रुटि संदेश के बाद मिलता है, एकता की प्रतिक्रिया हेडर 301, नहीं त्रुटि शामिल होंगे। :( –

उत्तर

12

संपादित करें: जब से मैंने इस सवाल से पूछा, यूनिटी ने यूनिटीवेबआरवेस्ट नामक HTTP संचार के लिए एक नया ढांचा जारी किया। यह डब्ल्यूडब्ल्यूडब्ल्यू की तुलना में बहुत अधिक आधुनिक है, और प्रतिक्रिया कोड के साथ-साथ हेडर, HTTP क्रियाएं इत्यादि के आसपास अधिक लचीलापन प्रदान करता है। आपको शायद डब्ल्यूडब्ल्यूडब्ल्यू के बजाय इसका उपयोग करना चाहिए।


स्पष्ट रूप से आपको प्रतिक्रिया शीर्षकों से इसे पार्स करने की आवश्यकता है।

public static int getResponseCode(WWW request) { 
    int ret = 0; 
    if (request.responseHeaders == null) { 
    Debug.LogError("no response headers."); 
    } 
    else { 
    if (!request.responseHeaders.ContainsKey("STATUS")) { 
     Debug.LogError("response headers has no STATUS."); 
    } 
    else { 
     ret = parseResponseCode(request.responseHeaders["STATUS"]); 
    } 
    } 

    return ret; 
} 

public static int parseResponseCode(string statusLine) { 
    int ret = 0; 

    string[] components = statusLine.Split(' '); 
    if (components.Length < 3) { 
    Debug.LogError("invalid response status: " + statusLine); 
    } 
    else { 
    if (!int.TryParse(components[1], out ret)) { 
     Debug.LogError("invalid response code: " + components[1]); 
    } 
    } 

    return ret; 
} 
संबंधित मुद्दे