NodeSourcesLocationController — use HttpRequests
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Tue, 23 Dec 2014 17:04:09 +0000 (18:04 +0100)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Tue, 23 Dec 2014 17:08:26 +0000 (18:08 +0100)
HttpRequests — add head request method

platform/platform-api/src/com/intellij/util/io/HttpRequests.java

index 5d86f3eb12caeffad4c7d7c362ba1d38b0079da6..6aaa82e466949be99171c846aa725444d7999004 100644 (file)
@@ -29,6 +29,7 @@ import com.intellij.openapi.vfs.CharsetToolkit;
 import com.intellij.util.ArrayUtil;
 import com.intellij.util.ReflectionUtil;
 import com.intellij.util.SystemProperties;
+import com.intellij.util.net.HTTPMethod;
 import com.intellij.util.net.HttpConfigurable;
 import com.intellij.util.net.NetUtils;
 import org.jetbrains.annotations.NotNull;
@@ -108,6 +109,8 @@ public abstract class HttpRequests {
     private String myUserAgent;
     private String myAccept;
 
+    private HTTPMethod myMethod;
+
     protected RequestBuilder(@NotNull String url) {
       myUrl = url;
     }
@@ -232,6 +235,13 @@ public abstract class HttpRequests {
     return ServiceManager.getService(HttpRequests.class).createRequestBuilder(url);
   }
 
+  @NotNull
+  public static RequestBuilder head(@NotNull String url) {
+    RequestBuilder builder = request(url);
+    builder.myMethod = HTTPMethod.HEAD;
+    return builder;
+  }
+
   protected abstract RequestBuilder createRequestBuilder(@NotNull String url);
 
   private static <T> T wrapAndProcess(RequestBuilder builder, RequestProcessor<T> processor) throws IOException {
@@ -401,6 +411,10 @@ public abstract class HttpRequests {
         ((HttpsURLConnection)connection).setHostnameVerifier(builder.myHostnameVerifier);
       }
 
+      if (builder.myMethod != null) {
+        ((HttpURLConnection)connection).setRequestMethod(builder.myMethod.name());
+      }
+
       if (builder.myGzip) {
         connection.setRequestProperty("Accept-Encoding", "gzip");
       }