Android 如果我使用';org.apache.http.legacy';并继续使用不推荐的东西,如NameValuePair和其他?

Android 如果我使用';org.apache.http.legacy';并继续使用不推荐的东西,如NameValuePair和其他?,android,apache,deprecated,ccavenue,basicnamevaluepair,Android,Apache,Deprecated,Ccavenue,Basicnamevaluepair,我正在尝试将支付网关集成到我的android应用程序中。为此,我下载了他们的集成工具包并使用了它。但是,目前可用的工具包导入org.apache.http,并使用其功能,如httppost、namevaluepair等。因此,我的问题是,如前所述,在gradle中进行下面提到的更改并继续使用不推荐使用的库可以吗 android { useLibrary 'org.apache.http.legacy' } 将此代码段放在ServiceHandler类中,您不需要使用legacy。您可以

我正在尝试将支付网关集成到我的android应用程序中。为此,我下载了他们的集成工具包并使用了它。但是,目前可用的工具包导入org.apache.http,并使用其功能,如httppost、namevaluepair等。因此,我的问题是,如前所述,在gradle中进行下面提到的更改并继续使用不推荐使用的库可以吗

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

将此代码段放在ServiceHandler类中,您不需要使用legacy。您可以根据您的要求更改他们的代码,这些只是示例

/**
 *
 * @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();
}
/**
*
*@param postrl
*@param后参数
*@返回字符串形式的响应
*/
公共静态字符串makeServiceCall(最终字符串姿势、最终映射后参数){
Log.e(“URL#”,postrl);
StringBuilder responseBuilder=新建StringBuilder();
HttpURLConnection conn=null;
试一试{
最终URL mUrl=新URL(姿势);
conn=(HttpURLConnection)mUrl.openConnection();
conn.setDoInput(真);
连接设置输出(真);
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“内容类型”、“应用程序/x-www-form-urlencoded”);
conn.setRequestProperty(“字符集”、“utf-8”);
conn.setRequestProperty(“用户代理”、“Mozilla/5.0(Linux;U;Android-4.0.3;en-us;Galaxy Nexus Build/IML74K)AppleWebKit/535.7(KHTML,如Gecko)CrMo/16.0.912.75 Mobile Safari/535.7”);
连接();
连接设置读取超时(180000);
连接设置连接超时(180000);
最终输出流os=conn.getOutputStream();
BufferedWriter writer=新的BufferedWriter(新的OutputStreamWriter(os,“UTF-8”));
write(getQuery(postParams));
writer.flush();
writer.close();
os.close();
final int responseCode=conn.getResponseCode();
if(responseCode==HttpsURLConnection.HTTP\u确定){
弦线;
BufferedReader br=新的BufferedReader(新的InputStreamReader(conn.getInputStream());
而((line=br.readLine())!=null){
responseBuilder.append(行);
}
}否则{
responseBuilder.append(“”);
}
}捕获(格式错误){
e、 printStackTrace();
append(例如getMessage());
返回responseBuilder.toString();
}捕获(IOE异常){
e、 printStackTrace();
append(例如getMessage());
返回responseBuilder.toString();
}最后{
如果(空!=conn){
连接断开();
}
}
gc();
返回responseBuilder.toString();
}
/**
*@Param:map,以键val格式获取值
*/
私有静态字符串getQuery(最终映射mPostItems)引发UnsupportedEncodingException{
最终StringBuilder结果=新建StringBuilder();
布尔值优先=真;
最终设置mKeys=mPostItems.keySet();
用于(字符串键:mKeys){
如果(第一)
第一个=假;
其他的
结果。追加(&);
result.append(URLEncoder.encode(键,“UTF-8”);
结果。追加(“=”);
result.append(URLEncoder.encode(mPostItems.get(key),“UTF-8”);
Log.e(“Key#”,Key+“#”+mPostItems.get(Key));
}
返回result.toString();
}

如果他们的工具包正在使用它,那么您就没有选择可以使用legacy。为什么OP“将此代码段放入ServiceHandler”?一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。