6

I am a Web Applications developer using J2EE Technology. I have made extensive use of Oracle's / OpenJDK's HTTP packages, as I find them more comfortable fo development.

https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

Today, I wish to write an Android Application in Java using the same packages but I somehow couldn't find them. I could find OkHttpClient, Apache's HttpClient as well but I am keen on using OpenJDK's HTTPClient.

There are of course many suggesting to use Apache's HTTPClient but I am not looking for that.

Olivier
  • 13,283
  • 1
  • 8
  • 24
Nandhan Thiravia
  • 360
  • 2
  • 12
  • 4
    As far as I can tell, the answer is "you can't" ... unless you are prepared to go to the effort of porting the relevant "java.net.http" classes to Android as a library. – Stephen C Nov 08 '21 at 07:15
  • We have to wait for [Java 11 APIs be made available through desugaring](https://developer.android.com/studio/write/java8-support-table). – Irfan Latif Feb 14 '22 at 22:58
  • [OpenJDK 11 Updates](https://developer.android.com/about/versions/13/features#core-libraries) in Android 13 do not include HTTP packages. – Irfan Latif Mar 09 '22 at 19:08

2 Answers2

9

Today, I wish to write an Android Application in Java using the same packages but I somehow couldn't find them

The Android SDK does not include everything in any particular Java SDK, especially J2EE. And, at the present time, the Android SDK tops out at Java 8 — classes, methods, and other items introduced after that are not in the Android SDK.

I am keen on using OpenJDK's HTTPClient

You are welcome to attempt to backport HTTPClient to work on the Android SDK. A quick glance at the source code suggests that it depends too much on things that the Android SDK lacks, and so that backport would be tedious at best and may not succeed. It also will require you to license your app (or anything else that uses this backport) under the GPL, which you may or may not want to do.

Also, if other developers will work on this project, you should be making your decisions on what to use based on what is best for the team (and, if relevant, the company or other organization that your team belongs to). Investing in this backport effort may not be the best option, compared to using OkHttp.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
1

The answer to your question is no. The top fully supported version of Java is Java 8. As a complements, you can check the links below for more details and understanding.

  1. Use Java 8 language features and APIs
  2. Java 8+ APIs available through desugaring
  3. Does java 11 support android?
  4. For more Android Http Client
Harry Coder
  • 2,429
  • 2
  • 28
  • 32