Maison >Java >javaDidacticiel >Java envoie avec Basic Auth en utilisant la méthode d'authentification fournie avec httpclient
Authentification de base sous méthode d'authentification par cryptage Base64.
Notez que l'authentification de base base64 utilise la méthode d'authentification fournie avec
httpclient comme suit. L'authentification échouera :
CredentialsProvider provider = new BasicCredentialsProvider();UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("username", "user1Pass");provider.setCredentials(AuthScope.ANY, credentials);HttpClient client = HttpClientBuilder.create() .setDefaultCredentialsProvider(provider) .build();
Exemples de réussite :
package com.biologic.api.service.impl;import java.io.IOException;import java.util.Base64;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.ContentType;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.entity.mime.content.StringBody;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.util.EntityUtils;import org.springframework.stereotype.Service;import com.biologic.api.service.HttpService;@Service public class HttpServiceImpl implements HttpService { @Override public int httpClientWithBasicAuth(String username, String password, String uri, Map<String, String> paramMap) { try { // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); HttpPost httpPost = new HttpPost(uri); //添加http头信息 httpPost.addHeader("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((username + ":" + password).getBytes())); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); paramMap.forEach((k,v)->{ builder.addPart(k, new StringBody(v, ContentType.MULTIPART_FORM_DATA)); }); HttpEntity postEntity = builder.build(); httpPost.setEntity(postEntity); String result = ""; HttpResponse httpResponse = null; HttpEntity entity = null; try { httpResponse = closeableHttpClient.execute(httpPost); entity = httpResponse.getEntity(); if( entity != null ){ result = EntityUtils.toString(entity); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 关闭连接 closeableHttpClient.close(); System.out.println(result); }catch (Exception e) { System.out.println(e.getStackTrace()); } return 0; } }.
Article connexe :
Exemple de partage de code de Java envoyant une demande de publication
Java utilisant du code natif pour envoyer une requête http
Vidéos associées :
Analyse complète des annotations Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!