Web后端http请求(带用户名和密码防止401 Unauthorized)

2024-05-01 21:38

本文主要是介绍Web后端http请求(带用户名和密码防止401 Unauthorized),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java

Java这方面的Jar包应该比较多,比如HttpClient,我这里使用最基本的:

[java]  view plain copy
在CODE上查看代码片 派生到我的代码片
  1. //认证信息对象,用于包含访问翻译服务的用户名和密码    
  2.             Authenticator auth = new MyAuthenticator("用户名""密码");    
  3.             Authenticator.setDefault(auth);    
  4.                 
  5.             // 打开和URL之间的连接    
  6.             HttpsURLConnection connection = (HttpsURLConnection)realUrl.openConnection();    
  7.             connection.setDoInput(true);      
  8.             connection.setDoOutput(true);//允许连接提交信息           
  9.             connection.setRequestMethod("GET");    
  10.                 
  11.             // 建立实际的连接    
  12.             connection.connect();   

  使用代理的方式是在打开Http连接的时候同时传递一个Proxy参数。如果需要验证信息的话我们可以添加一个Http头参数来实现。

     

[java]  view plain copy
print ?
  1. //格式如下:  
  2. "Proxy-Authorization""Basic Base64.encode(user:password)"  
  3. String headerKey = "Proxy-Authorization";  
  4. String headerValue = "Basic " + Base64.encode(user+":"+password);  
  5. conn.setRequestProperty(headerKey, headerValue);  

  


import java.io.File;



import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.junit.Test;


import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;


public class TestVidyo {
@Test
public void downLoad() {
 DefaultHttpClient httpClient = new DefaultHttpClient();
 OutputStream out = null;
 InputStream in = null;
 
 String localFileName = "";
 String url = "http://****.com.cn/replay/downloadRecording.do?file=680f1d0d-3251-4948-b7bb-975d6e2cf1e3"; // filelink
 String username = "super";
 String password = "password";
 try {
  HttpGet httpGet = new HttpGet(url);
  String auth = "Basic " + Base64.encode((username + ":" + password).getBytes());
  httpGet.addHeader("Authorization", auth);
  HttpResponse httpResponse = httpClient.execute(httpGet);
  HttpEntity entity = httpResponse.getEntity();
  in = entity.getContent();
  long length = entity.getContentLength();
  if (length <= 0) {
   System.out.println("下载文件不存在!");
   return;
  }   
  File file = new File(localFileName);
  if(!file.exists()){
   file.createNewFile();
  }
  out = new FileOutputStream(file);  
  byte[] buffer = new byte[4096];
  int readLength = 0;
  while ((readLength=in.read(buffer)) > 0) {
   byte[] bytes = new byte[readLength];
   System.arraycopy(buffer, 0, bytes, 0, readLength);
   out.write(bytes);
  }
  out.flush();
 } catch (IOException e) {
  e.printStackTrace();
 } catch (Exception e) {
  e.printStackTrace();
 }finally{
  try {
   if(in != null){
    in.close();
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
  try {
   if(out != null){
    out.close();
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}


}

       为了大家清楚的知道引用的jar包,import一同奉上。本编博客是结合各方高手贴总结后的,也是经过本人测试成功后才发布的。相应jar包在csdn可以下载

      其中的Base64.encode(user:password)是指把用户名和密码用冒号连接起来之后使用Base64编码后的值作为值的一部分。  

      通过这种方式只影响特定的Http连接,但是需要对代码进行修改。这种方式下是否可以使用Authenticator还未做验证。


这篇关于Web后端http请求(带用户名和密码防止401 Unauthorized)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952732

相关文章

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

PostgreSQL数据库密码被遗忘时的操作步骤

《PostgreSQL数据库密码被遗忘时的操作步骤》密码遗忘是常见的用户问题,因此提供一种安全的遗忘密码找回机制是十分必要的,:本文主要介绍PostgreSQL数据库密码被遗忘时的操作步骤的相关资... 目录前言一、背景知识二、Windows环境下的解决步骤1. 找到PostgreSQL安装目录2. 修改p

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3