2012-02-19 18 views
5

मैं एक यूआरएल से इनपुटस्ट्रीम प्राप्त करने की कोशिश कर रहा हूं। यूआरएल फ़ायरफ़ॉक्स से खोला जा सकता है। यह एक जेसन लौटाता है और मैंने फ़ायरफ़ॉक्स में जेसन को देखने के लिए एक एडन स्थापित किया है, इसलिए मैं इसे वहां देख सकता हूं।सर्वर ने HTTP प्रतिक्रिया कोड लौटाया: 400

तो मैं द्वारा जावा से यह प्राप्त करने की कोशिश:

URL url = new URL(urlString); 
URLConnection urlConnection = url.openConnection(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 

लेकिन यह urlConnection.getInputStream में एक IOException() फेंक रहा है।

मैं भी करने की कोशिश की:

HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
InputStream inputStream = url.openStream(); 

लेकिन कोई भाग्य।

कोई भी जानकारी सराहनीय है। अग्रिम में धन्यवाद।

उत्तर

22

सभी को धन्यवाद। यह एक अजीब समस्या है लेकिन अंत में मैंने इसे हल किया।

यूआरएल मैं विनती करता हूँ

http://api.themoviedb.org/2.1/Movie.search/en/json/api_key/a nightmare on elm street 

अब ब्राउज़र "एल्म सड़क पर एक बुरा सपना" के बीच रिक्त स्थान की जगह "% 20" आंतरिक रूप से और पार्स कर रहा है। यही कारण है कि अनुरोध किया गया सर्वर उस अनुरोध से प्रतिक्रिया दे सकता है। लेकिन जावा से मैंने उस रिक्त स्थान को "% 20" से प्रतिस्थापित नहीं किया है, इसलिए यह खराब अनुरोध, source में बदल जाता है।

अब यह काम कर रहा है।

BufferedReader reader = new BufferedReader(new InputStreamReader(((HttpURLConnection) (new URL(urlString)).openConnection()).getInputStream(), Charset.forName("UTF-8"))); 
+0

धन्यवाद !! मुझे लंबे समय से बचाया – Ankur

+0

@ अंकुर आपका स्वागत है। –

+0

हाय, मुझे अभी भी एक ही त्रुटि मिल रही है – Bhavesh

3

क्या आप कनेक्शन को सही तरीके से स्थापित कर रहे हैं? यहां कुछ कोड है जो दिखाता है कि यह कैसे करें। ध्यान दें कि मैं यहां अपवाद हैंडलिंग के बारे में आलसी हूं, यह उत्पादन गुणवत्ता कोड नहीं है।

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 


public class URLFetcher { 

    public static void main(String[] args) throws Exception { 
     URL myURL = new URL("http://www.paulsanwald.com/"); 
     HttpURLConnection connection = (HttpURLConnection) myURL.openConnection(); 
     connection.setRequestMethod("GET"); 
     connection.setDoOutput(true); 
     connection.connect(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
     StringBuilder results = new StringBuilder(); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      results.append(line); 
     } 

     connection.disconnect(); 
     System.out.println(results.toString()); 
    } 
} 
0

एनकोड URL में पैरामीटर इस प्रकार है:

String messageText = URLEncoder.encode(messageText, "UTF-8"); 
संबंधित मुद्दे