如何HTTPS发布在Android

我已经看了下面的链接,但没有看到具体的东西。 在Android安全的HTTP发布这一个不工作了,我已经testing了,并有其他人的评论说,这是行不通的。

我也检查了这一点: DefaultHttpClient,证书,https和发布问题! 这似乎可以工作,但博客只是让你挂。 更多的一步一步的指示将是有益的。 我设法得到我的证书,我没有能够通过他的第二步。

http://www.makeurownrules.com/secure-rest-web-service-mobile-application-android.html这一个看起来不错,但是我最后一步放松了作者:“回到我们原来的rest客户端代码“。 他也到处都是,我不知道他在用哪个图书馆。 他没有解释他的代码,

RestTemplate restTemplate = new RestTemplate(); 

这是另一个悬崖峭壁。 因为那个class没有提供。 所以,如果有人能够详细解释如何做HTTPS POST请求,那将是非常棒的。 我确实需要接受自签名证书。

Related of "如何HTTPS发布在Android"

我希望这会有所帮助。 这是我使用的代码,工作得很好。

 private HttpClient createHttpClient() { HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET); HttpProtocolParams.setUseExpectContinue(params, true); SchemeRegistry schReg = new SchemeRegistry(); schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg); return new DefaultHttpClient(conMgr, params); } 

然后像这样创build一个HttpClient: –

 HttpClient httpClient = createHttpClient(); 

并用它与HttpPost。

干杯!!

编辑

而我没有在我的代码中使用RestTemplate。 我做了一个简单的发布请求。 如果您需要更多帮助,请告诉我。 看来我最近做了类似于你正在寻找的东西。

这是我使用的HTTPS Post和Here我使用自定义证书的方法,所以改变你自己的HttpClient分配…

 public String postData(String url, String xmlQuery) { final String urlStr = url; final String xmlStr = xmlQuery; final StringBuilder sb = new StringBuilder(); Thread t1 = new Thread(new Runnable() { public void run() { HttpClient httpclient = MySSLSocketFactory.getNewHttpClient(); HttpPost httppost = new HttpPost(urlStr); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>( 1); nameValuePairs.add(new BasicNameValuePair("xml", xmlStr)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); Log.d("Vivek", response.toString()); HttpEntity entity = response.getEntity(); InputStream i = entity.getContent(); Log.d("Vivek", i.toString()); InputStreamReader isr = new InputStreamReader(i); BufferedReader br = new BufferedReader(isr); String s = null; while ((s = br.readLine()) != null) { Log.d("YumZing", s); sb.append(s); } Log.d("Check Now",sb+""); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } /* * catch (ParserConfigurationException e) { // TODO * Auto-generated catch block e.printStackTrace(); } catch * (SAXException e) { // TODO Auto-generated catch block * e.printStackTrace(); } */ } }); t1.start(); try { t1.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Getting from Post Data Method "+sb.toString()); return sb.toString(); }