title: java.net.UnknownHostException : api.openweathermap.org
body: <p>I'm following a course on udacity 'Developing Android Apps'. Following is the code of ForecastFragment class which is suppose to get data in json format from the url(<a href="http://api.openweathermap.org/data/2.5/forecast/daily?q=Delhi,in&amp;mode=json&amp;cnt=7&amp;units=metric" rel="nofollow">http://api.openweathermap.org/data/2.5/forecast/daily?q=Delhi,in&amp;mode=json&amp;cnt=7&amp;units=metric</a>).</p>
  
  <pre><code>public  class ForecastFragment extends Fragment {
  
      public ForecastFragment() {
      }
  
      public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          setHasOptionsMenu(true);
  
            }
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
  
          View rootView = inflater.inflate(R.layout.fragment_main, container, false);
  
          String[] data = {
  
                  "Today-Sunny-34", "Tommorow-Rainy-233", "Wednesday-Cloudy-21", "Thursday-Monayblue-18", "Frida-Rainy-23", "Saturday-Rainy-22", "Sunday-Strorm-100"
          };
  
  
          List&lt;String&gt; weekForecast = new ArrayList&lt;String&gt;(Arrays.asList(data));
          ArrayAdapter&lt;String&gt; mForecastAdapter = new ArrayAdapter&lt;String&gt;(getActivity(), R.layout.list_item_forecast, R.id.list_item_forecast_textview, weekForecast);
          ListView listView = (ListView) rootView.findViewById(R.id.listview_forecast);
          listView.setAdapter(mForecastAdapter);
  
  
  
          return rootView;
      }
  
      public void onCreateOptionsMenu(Menu menu,MenuInflater inflater){
  
         inflater.inflate(R.menu.forecastfragment, menu);
  
      }
  
      public boolean onOptionsItemSelected(MenuItem item){
  
          int id = item.getItemId();
          if(id==R.id.action_refresh){
              FetchWeatherTask fetch = new FetchWeatherTask();
          fetch.execute();
          return true;}
  
          return super.onOptionsItemSelected(item);
  
      }
  
      public class FetchWeatherTask extends AsyncTask&lt;Void,Void,Void&gt;{
  
  
          private final String LOG_TAG = FetchWeatherTask.class.getSimpleName();
          @Override
          protected Void doInBackground(Void... params) {
              HttpURLConnection urlConnection = null;
              BufferedReader reader = null;
              String forecastJsonStr = null;
  
              try {
                  URL url = new URL("http://api.openweathermap.org/data/2.5/forecast/daily?q=Delhi,in&amp;mode=json&amp;cnt=7&amp;units=metric");
  
                  urlConnection = (HttpURLConnection) url.openConnection();
                  urlConnection.setRequestMethod("GET");
                  urlConnection.connect();
  
  
                  InputStream inputStream = urlConnection.getInputStream();
                  StringBuffer buffer = new StringBuffer();
                  if (inputStream == null) return null;
                  reader = new BufferedReader(new InputStreamReader(inputStream));
                  String line;
                  while ((line = reader.readLine()) != null) {
                      buffer.append(line + "\n");
                  }
                  if (buffer.length() == 0) return null;
                  forecastJsonStr = buffer.toString();
                  Log.v(LOG_TAG,"Forecast Json String" + forecastJsonStr);
              } catch (IOException e) {
                  Log.e(LOG_TAG, "Error", e);
                  return null;
              } finally {
                  if (urlConnection != null) urlConnection.disconnect();
                  if (reader != null) {
                      try {
                          reader.close();
                      } catch (final IOException e) {
                          Log.e("placeholder fragment", "error closing stream", e);
                      }
                  }
              }
              return null;
          }
      }
  }
  </code></pre>
  
  <p>However, I'm repeatedly getting this error. </p>
  
  <pre><code>07-20 12:49:14.063    2392-2486/com.example.android.sunshine.app        E/FetchWeatherTask﹕ Error
  java.net.UnknownHostException: api.openweathermap.org
          at java.net.InetAddress.lookupHostByName(InetAddress.java:512)
          at java.net.InetAddress.getAllByNameImpl(InetAddress.java:300)
          at java.net.InetAddress.getAllByName(InetAddress.java:259)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.&lt;init&gt;(HttpConnection.java:69)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.&lt;init&gt;(HttpConnection.java:48)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
          at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)
          at com.example.android.sunshine.app.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:119)
          at com.example.android.sunshine.app.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:83)
          at android.os.AsyncTask$2.call(AsyncTask.java:185)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
          at java.util.concurrent.FutureTask.run(FutureTask.java:138)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
          at java.lang.Thread.run(Thread.java:1027)
  </code></pre>
  
  <p>Following are the things I've already checked:-</p>
  
  <ul>
  <li>mobile phone has internet access.</li>
  <li><p>AndroidManifest.xml declares the permission for internet usage.</p>
  
  <p>The url works fine in the browser,but I'm clueless as to why this error is coming up.</p></li>
  </ul>
  
  <p>Also, I'm running the app on my android phone(api 10).</p>
  
  <p>If anyone could please provide a solution or point me in the right direction,it would be great. Thank you.</p>