已弃用的HttpClient,HttpPost,NameValuePair的替代方案

时间:2016-01-07 07:32:19

标签: android httpsurlconnection basicnamevaluepair

我一直在搜索,但没有找到任何解决方案。我想使用URLHttpsUrlConnection而不是弃用的HttpClient, HttpPost, DefaultHttpClient)。到目前为止,我有以下代码:

注意“MyUrl”需要一些参数。见问题2。

 URL url = new URL("MyUrl");
    HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");

    /*Here exception occurs!*/
    connection.connect();

所以,我有两个问题需要解决:(也许第二个问题应该先解决。我不知道......)

  1. 当我使用connection.someMethod();时发生SSLException。 (即connection.getResponseCode();
  2. 错误是:

    javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x635cb550: Failure in SSL library, usually a protocol error

    1. List<NameValuePair> & BasicNameValuePair的替代方法是什么?这些也被弃用了。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您不需要使用连接。只需这样做:

 conn.setRequestMethod("POST");
 InputStream in = new BufferedInputStream(conn.getInputStream());
 response = org.apache.commons.io.IOUtils.toString(in, "UTF-8"); 

您会收到回复。

此外,您可以使用ContentValues替代NameValuePair:

ContentValues initialValues = new ContentValues();
initialValues.put("parameter", value);