diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index f58c401..7e77e77 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -38,7 +38,8 @@
     <application android:label="@string/english_ime_name"
             android:icon="@drawable/ic_launcher_keyboard"
             android:supportsRtl="true"
-            android:allowBackup="true">
+            android:allowBackup="true"
+            android:usesCleartextTraffic="false">
 
         <!-- Services -->
         <service android:name="LatinIME"
diff --git a/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java b/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
index 5b3e78e..54808b7 100644
--- a/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
+++ b/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
@@ -87,7 +87,7 @@
 
     public void testAddHeader() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
-        builder.setUrl("http://www.example.com");
+        builder.setUrl("https://www.example.com");
         builder.addHeader("some-random-key", "some-random-value");
         HttpURLConnection connection = builder.build();
         assertEquals("some-random-value", connection.getRequestProperty("some-random-key"));
@@ -95,14 +95,14 @@
 
     public void testSetUseCache_notSet() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
-        builder.setUrl("http://www.example.com");
+        builder.setUrl("https://www.example.com");
         HttpURLConnection connection = builder.build();
         assertFalse(connection.getUseCaches());
     }
 
     public void testSetUseCache_false() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
-        builder.setUrl("http://www.example.com");
+        builder.setUrl("https://www.example.com");
         HttpURLConnection connection = builder.build();
         connection.setUseCaches(false);
         assertFalse(connection.getUseCaches());
@@ -110,7 +110,7 @@
 
     public void testSetUseCache_true() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
-        builder.setUrl("http://www.example.com");
+        builder.setUrl("https://www.example.com");
         HttpURLConnection connection = builder.build();
         connection.setUseCaches(true);
         assertTrue(connection.getUseCaches());
@@ -118,7 +118,7 @@
 
     public void testSetMode_uploadOnly() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
-        builder.setUrl("http://www.example.com");
+        builder.setUrl("https://www.example.com");
         builder.setMode(MODE_UPLOAD_ONLY);
         HttpURLConnection connection = builder.build();
         assertTrue(connection.getDoInput());
