Я использую Azure BatchClient для получения списка заданий.Но не удалось пройти проверку подлинности с прокси.
Я пытался установить код прокси System.setProperty ("proxyHost", "value").Но это не работает.Также я попробовал приведенный ниже код для аутентификации прокси.
BatchSharedKeyCredentials cred = new BatchSharedKeyCredentials(uri, account, key);
BatchClient client = BatchClient.open(cred);
client.protocolLayer().getAzureClient().httpClient().newBuilder().proxyAuthenticator(new okhttp3.Authenticator() {@Override
public Request authenticate(Route route, Response response) throws IOException {
String credential = Credentials.basic("username", "password");return response.request().newBuilder().header("Authorization", credential).build();}}).build();
Общий код:
import java.io.IOException;
import com.microsoft.azure.PagedList;
import com.microsoft.azure.batch.BatchClient;
import com.microsoft.azure.batch.auth.BatchSharedKeyCredentials;
import com.microsoft.azure.batch.protocol.models.BatchErrorException;
import com.microsoft.azure.batch.protocol.models.CloudJob;
public class BatchClientService {
public void testBatch() {
String uri = "batch uri";
String account = "devbatch";
String key = "access key";
System.setProperty("http.proxyHost", "proxy host");
System.setProperty("http.proxyPort", "port");
System.setProperty("https.proxyHost", "proxy host");
System.setProperty("https.proxyPort", "port");
System.setProperty("http.proxyUser","username");
System.setProperty("http.proxyPassword","password");
System.setProperty("https.proxyUser","username");
System.setProperty("https.proxyPassword","password");
BatchSharedKeyCredentials cred = new BatchSharedKeyCredentials(uri, account, key);
try {
BatchClient client = BatchClient.open(cred);
PagedList<CloudJob> jobslist = client.jobOperations().listJobs();
for (CloudJob cloudJob : jobslist) {
System.out.println("DisplayName: " + cloudJob.displayName());
System.out.println("ETag: " + cloudJob.eTag());
System.out.println("ID: " + cloudJob.id());
}
} catch (BatchErrorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Заранее спасибо.