diff --git a/testing/integration-tests/search-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java b/testing/integration-tests/search-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
index b7d6a8ca49ec74c80688b579b3764a7e1ae206b8..2b1b87398f804b3246409568af6611cbcf164f8b 100644
--- a/testing/integration-tests/search-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
+++ b/testing/integration-tests/search-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
@@ -14,9 +14,16 @@
 
 package org.opengroup.osdu.util;
 
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
 import lombok.ToString;
 import lombok.extern.java.Log;
 
+import javax.ws.rs.core.Response;
+import java.net.SocketTimeoutException;
+import java.util.Map;
+
 @Log
 @ToString
 public class AzureHTTPClient extends HTTPClient {
@@ -34,4 +41,44 @@ public class AzureHTTPClient extends HTTPClient {
         }
         return token;
     }
-}
\ No newline at end of file
+
+    public ClientResponse send(String httpMethod, String url, String payLoad, Map<String, String> headers, String token) {
+        ClientResponse response;
+        System.out.println("in Azure send method");
+        String correlationId = java.util.UUID.randomUUID().toString();
+        log.info(String.format("Request correlation id: %s", correlationId));
+        headers.put(HEADER_CORRELATION_ID, correlationId);
+        Client client = getClient();
+        client.setReadTimeout(300000);
+        client.setConnectTimeout(300000);
+        log.info(String.format("httpMethod: %s", httpMethod));
+        log.info(String.format("payLoad: %s", payLoad));
+        log.info(String.format("headers: %s", headers));
+        log.info(String.format("URL: %s", url));
+        WebResource webResource = client.resource(url);
+        log.info("waiting on response in azure send");
+        int retryCount = 2;
+        try{
+            response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+            while (retryCount > 0) {
+                if (response.getStatusInfo().getFamily().equals(Response.Status.Family.valueOf("SERVER_ERROR"))) {
+                    log.info(String.format("got resoponse : %s", response.getStatusInfo()));
+                    Thread.sleep(5000);
+                    log.info(String.format("Retrying --- "));
+                    response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+                } else
+                    break;
+                retryCount--;
+            }
+            System.out.println("sending response from azure send method");
+            return response;
+        } catch (Exception e) {
+            if (e.getCause() instanceof SocketTimeoutException) {
+                System.out.println("Retrying in case of socket timeout exception");
+                return this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+            }
+            e.printStackTrace();
+            throw new AssertionError("Error: Send request error", e);
+        }
+    }
+}
diff --git a/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java b/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
index 6b482bf5a5975c7445afa9a81d603e9eada598a6..ecc1998ceab89c5229d23282f2ab32d327f054ae 100644
--- a/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
+++ b/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
@@ -24,11 +24,11 @@ public abstract class HTTPClient {
     private static Random random = new Random();
     private final int MAX_ID_SIZE = 50;
 
-    private static final String HEADER_CORRELATION_ID = "correlation-id";
+    protected static final String HEADER_CORRELATION_ID = "correlation-id";
     
     public abstract String getAccessToken();
 
-    private static Client getClient() {
+    protected static Client getClient() {
         TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
             @Override
             public X509Certificate[] getAcceptedIssuers() {
@@ -60,7 +60,7 @@ public abstract class HTTPClient {
             log.info(String.format("Request correlation id: %s", correlationId));
             headers.put(HEADER_CORRELATION_ID, correlationId);
             Client client = getClient();
-            client.setReadTimeout(180000);
+            client.setReadTimeout(300000);
             client.setConnectTimeout(300000);
             log.info(String.format("URL: %s", url));
             WebResource webResource = client.resource(url);
@@ -73,7 +73,7 @@ public abstract class HTTPClient {
         return response;
     }
 
-    private ClientResponse getClientResponse(String httpMethod, String requestBody, WebResource webResource, Map<String, String> headers, String token) {
+    protected ClientResponse getClientResponse(String httpMethod, String requestBody, WebResource webResource, Map<String, String> headers, String token) {
         final WebResource.Builder builder = webResource.accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).header("Authorization", token);
         headers.forEach(builder::header);
         log.info("making request to datalake api");