2014-10-15 4 views
6

मैं सदस्यता रीबूट के साथ github सेटअप करने का प्रयास कर रहा हूं।HttpClient रिटर्न सर्वर ने प्रोटोकॉल उल्लंघन किया - ब्राउज़र सही डेटा देता है

मैं

https://api.github.com/user?access_token=XXXXXXX

की तरह एक ब्राउज़र से GitHub एपीआई मैं हालांकि सभी वैध json डेटा देख सकते हैं अगर मैं .net

public ActionResult Index() 
    { 
     var url = "https://api.github.com/user?access_token=XXXXXXXX"; 
     ////add additional params 
     //if (additionalParams != null) 
     //{ 
     // foreach (string key in additionalParams) 
     // { 
     //  url += string.Format("&{0}={1}", key, additionalParams[key]); 
     // } 
     //} 

     HttpClient client = new HttpClient(); 
     var result = client.GetAsync(url).Result; 
     if (result.IsSuccessStatusCode) 
     { 
      var json = result.Content.ReadAsStringAsync().Result; 
      var profile = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(json); 
      //return GetClaimsFromProfile(profile); 
     } 
     return View(); 
    } 

से कोशिश बुला की कोशिश करते हैं मुझे

की त्रुटि मिली

सर्वर ने प्रोटोकॉल उल्लंघन किया है। सेक्शन = रेस्पॉन्सस्टैटसलाइन

एचटीपी क्लाइंट किस चीज की कोशिश कर रहा है उसके बारे में क्या नहीं है? क्या मुझे अतिरिक्त विवरण प्रदान करने की ज़रूरत है कि ब्राउज़र मेरे लिए कर रहा है?

किसी भी मदद की सराहना की जाएगी!

+0

क्या आपने अंतिम यूआरएल देखा है? क्या कोई नई लाइन या अवैध चरित्र हो सकता है? – recursive

+0

अंतिम url अच्छा लग रहा है ऊपर मैं url बदल दिया एक हार्डकोडेड स्ट्रिंग होने के लिए उदाहरण के लिए, लेकिन कोड से वास्तविक मूल्य –

+1

जो सटीक त्रुटि के बारे में आप और है कि पूछ रहे हैं बनाता है एक ** पूरा ** कोड उदाहरण पोस्ट करें thats हम खुद के लिए दौड़ सकते हैं। –

उत्तर

2

जोड़ना

<system.net> 
    <settings> 
     <httpWebRequest useUnsafeHeaderParsing="true" /> 
    </settings> 
    </system.net> 
मेरी web.config को

समस्या को हल करने लगता है ... मैं न वास्तव में समझने के कारण है कि मैं इस जोड़ने के लिए की जरूरत है, लेकिन यह काम करता है।

0

यह सुनिश्चित नहीं है कि यह यहां प्रासंगिक है, लेकिन मुझे https://api.github.com/user एंडपॉइंट पर एक ही समस्या मिली। मेरा समाधान मैंने सोचा जितना आसान था, लेकिन फिर भी परेशान था क्योंकि मुझे पता लगाने में कई घंटे लगे।

User-Agent एपीआई एंडपॉइंट को पास किया जाना चाहिए, शायद यह User-Agent निर्दिष्ट करके यहां भी काम करता है।

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

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