2016-05-23 4 views
0

Я новичок в разработке Android и до сих пор использую DefaultHttpClient для вызова службы теперь мне нужно использовать HttpURlConnection, поскольку DefaultHttpClient лишен. Как я могу это достичь?change from DefaultHttpClient to HttpURLConnection

Мой код DefaultHttpClient является

public String makeServiceCall(String url, int method, 
            List<NameValuePair> params) { 
     try { 
      // http client 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpEntity httpEntity = null; 


      // Checking http request method type 
      if (method == POST) { 
       HttpPost httpPost = new HttpPost(url); 
       // adding post params 
       if (params != null) { 
        httpPost.setEntity(new UrlEncodedFormEntity(params)); 
       } 

       httpResponse = httpClient.execute(httpPost); 

      } else if (method == GET) { 
       // appending params to url 
       if (params != null) { 
        String paramString = URLEncodedUtils 
          .format(params, "utf-8"); 
        url += "?" + paramString; 
       } 
       HttpGet httpGet = new HttpGet(url); 

       httpResponse = httpClient.execute(httpGet); 

      } 
      httpEntity = httpResponse.getEntity(); 
      response = EntityUtils.toString(httpEntity); 
      Constant.statusCode = httpResponse.getStatusLine().getStatusCode(); 

     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return response; 

    } 

Я называю этот метод в doInBackground моего AsyncTask как

ServiceHandler serviceHandler = new ServiceHandler(); 
       String jsonResponse = serviceHandler.makeServiceCall(url, serviceHandler.POST, pairs); 
+1

проверить этот ref: http://www.tutorialspoint.com/android/android_network_connection.htm –

ответ

1

Чтобы построить ваш URL использовать это, это пример:

Uri.Builder builder = new Uri.Builder(); 
builder.scheme(BUILDER_SCHEME) // http 
    .authority(BUILDER_AUTHORITY) //api.themoviedb.org 
    .appendPath(BUILDER_PATH_1) // 3 
    .appendPath(BUILDER_PATH_2) // movie 
    .appendPath(params[0]) // now_playing 
    .appendQueryParameter(APIKEY_PARAM, "key"); //my api key 
String builtURL = builder.build().toString(); 

В результате получилось: http://api.themoviedb.org/3/movie/now_playing?api_key=key

Объявить свой объект:

HttpURLConnection httpURLConnection = null; 

Initialize:

URL url = new URL(builtURL); 
httpURLConnection = (HttpURLConnection) url.openConnection(); 

Установить метод запроса на подключение:

httpURLConnection.setRequestMethod("GET"); 

Connect:

httpURLConnection.connect(); 

И если вы хотите статус кода & ответа затем:

httpURLConnection.getResponseCode(); 
httpURLConnection.getInputStream(); 

Это довольно простой пример, хотя, если вы можете, хотя, попробуйте Дооснащение.

+0

моя главная задача установить параметры, и в вашем ответе вы ничего не сделали, чтобы установить параметры ... и я отправляю список для метода makeServiceCall –

+0

@raviprakashdarshan, вы имеете в виду URL-адрес? Я поставлю это. –

+0

да. Я имею в виду! –