2017-08-31 14 views
7

मैं इस कोड है कि एक अनुरोध बनाता है और डेटा पढ़ता है, लेकिन यह हमेशा खालीपढ़ना डेटा रिटर्न रिक्त मान

 static string uri = "http://yiimp.ccminer.org/api/wallet?address=DshDF3zmCX9PUhafTAzxyQidwgdfLYJkBrd"; 

    static void Main(string[] args) 
    { 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 
     request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; 

     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

     // Get the stream associated with the response. 
     Stream receiveStream = response.GetResponseStream(); 

     // Pipes the stream to a higher level stream reader with the required encoding format. 
     StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); 

     Console.WriteLine("Response stream received."); 
     Console.WriteLine(readStream.ReadToEnd()); 
     response.Close(); 
     readStream.Close(); 

    } 

है जब मैं ब्राउज़र से लिंक का उपयोग करने के मैं इस json पाने की कोशिश की है:

{"currency": "DCR", "unsold": 0.030825917365192, "balance": 0.02007306, "unpaid": 0.05089898, "paid24h": 0.05796425, "total": 0.10886323} 

मुझे क्या याद आ रही है?

+0

क्या आपको कोई त्रुटि मिल रही है? अनुरोध के लिए स्टेटस कोड क्या है? – Jerodev

+0

कोई त्रुटि नहीं, बस एक खाली मान –

उत्तर

7

जब आप किसी ब्राउज़र से अनुरोध करते हैं तो बहुत सारे शीर्षलेख होते हैं जो वेब सेवा पर भेजे जाते हैं। स्पष्ट रूप से यह वेब सेवा UserAgent को मान्य करती है। यह वेब सेवा कार्यान्वयन के हिस्से पर एक निर्णय है, हो सकता है कि वे नहीं चाहते कि आप इसे प्रोग्रामेटिक रूप से एक्सेस कर सकें।

var client = (HttpWebRequest)HttpWebRequest.Create(new Uri("http://yiimp.ccminer.org/api/wallet?address=DshDF3zmCX9PUhafTAzxyQidwgdfLYJkBrd")); 
client.AutomaticDecompression = DecompressionMethods.GZip; 
client.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063"; 
client.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate"; 
client.Host = "yiimp.ccminer.org"; 
client.KeepAlive = true; 

using (var s = client.GetResponse().GetResponseStream()) 
using (var sw = new StreamReader(s)) 
{ 

    var ss = sw.ReadToEnd(); 
    Console.WriteLine(ss); 
} 

हेडर भेजना यह काम करता है।

+0

यह काम करता प्रतीत होता है, गायब हेडर समस्या थी, धन्यवाद! –

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