2017-01-23 17 views
0

我正在嘗試將CCAvenue支付網關集成到我的Android應用程序中。爲此,我下載了他們的集成套件並使用它。但是,目前可用的工具包會導入org.apache.http並使用它的功能,例如httppost,namevaluepair等。所以,我的問題是,正如here所述,是否可以在Gradle中進行下面提到的更改並繼續使用已棄用的庫?如果我使用'org.apache.http.legacy'並繼續使用已棄用的東西(如NameValuePair和其他),它會好嗎?

android { 
    useLibrary 'org.apache.http.legacy' 
} 
+1

如果他們的套件正在使用,那麼沒有選擇給你,所以你可以使用遺留。 – Spartan

回答

0

將這個代碼片段中的ServiceHandler類,您可以不必使用傳統的。您可以根據您的要求更改其代碼,這些只是樣本。

/** 
* 
* @param postUrl 
* @param postParams 
* @return response in string 
*/ 
public static String makeServiceCall(final String postUrl, final Map<String, String> postParams) { 
    Log.e("URL#",postUrl); 
    StringBuilder responseBuilder = new StringBuilder(); 
    HttpURLConnection conn = null; 
    try { 
     final URL mUrl = new URL(postUrl); 
     conn = (HttpURLConnection) mUrl.openConnection(); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 
     conn.setRequestMethod("POST"); 
     conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     conn.setRequestProperty("charset", "utf-8"); 
     conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7"); 
     conn.connect(); 
     conn.setReadTimeout(180000); 
     conn.setConnectTimeout(180000); 
     final OutputStream os = conn.getOutputStream(); 
     BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 
     writer.write(getQuery(postParams)); 
     writer.flush(); 
     writer.close(); 
     os.close(); 
     final int responseCode = conn.getResponseCode(); 
     if (responseCode == HttpsURLConnection.HTTP_OK) { 
      String line; 
      BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      while ((line = br.readLine()) != null) { 
       responseBuilder.append(line); 
      } 
     } else { 
      responseBuilder.append(""); 
     } 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
     responseBuilder.append(e.getMessage()); 
     return responseBuilder.toString(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     responseBuilder.append(e.getMessage()); 
     return responseBuilder.toString(); 
    } finally { 
     if (null != conn) { 
      conn.disconnect(); 
     } 
    } 
    System.gc(); 
    return responseBuilder.toString(); 
} 


/** 
* @Param: map , takes in value in key val format 
*/ 
private static String getQuery(final Map<String, String> mPostItems) throws UnsupportedEncodingException { 
    final StringBuilder result = new StringBuilder(); 
    boolean first = true; 
    final Set<String> mKeys = mPostItems.keySet(); 
    for (String key : mKeys) { 
     if (first) 
      first = false; 
     else 
      result.append("&"); 

     result.append(URLEncoder.encode(key, "UTF-8")); 
     result.append("="); 
     result.append(URLEncoder.encode(mPostItems.get(key), "UTF-8")); 
     Log.e("Key#",key+"#"+mPostItems.get(key)); 
    } 
    return result.toString(); 
} 
+0

爲什麼OP「將這段代碼片段放入ServiceHandler」?一個好的答案**將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,而且是爲了將來SO的訪問者。 –

相關問題