Web后端语言模拟http请求(带用户名和密码)实例代码大全

简介: RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口;经过一段时间的IBM的云平台Blumemix的学习及语言翻译服务的应用,积累了Java、ASP.NET、Nodejs、Go、PHP、Python、Ruby等语言调用Rest API的方法,这里整理到一起,和大家分享一下。

RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口;经过一段时间的IBM的云平台Blumemix的学习及语言翻译服务的应用,积累了Java、ASP.NET、Nodejs、Go、PHP、Python、Ruby等语言调用Rest API的方法,这里整理到一起,和大家分享一下。

有关RESTful API请参考:理解RESTful架构RESTful API 设计指南


Java

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

//认证信息对象,用于包含访问翻译服务的用户名和密码  
            Authenticator auth = new MyAuthenticator("用户名", "密码");  
            Authenticator.setDefault(auth);  
              
            // 打开和URL之间的连接  
            HttpsURLConnection connection = (HttpsURLConnection)realUrl.openConnection();  
            connection.setDoInput(true);    
            connection.setDoOutput(true);//允许连接提交信息         
            connection.setRequestMethod("GET");  
              
            // 建立实际的连接  
            connection.connect();  
相关实例: Java中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具

ASP.NET

ASP.NET中使用System.Net.Http.HttpClient类来实现API调用:

System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();
//将服务凭证转换为Base64编码格式
byte[] auth = Encoding.UTF8.GetBytes("用户名:密码");
String auth64 = Convert.ToBase64String(auth);
//创建并指定服务凭证,认证方案为Basic
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", auth64);

retString = await httpClient.GetStringAsync(uri);

相关实例:ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具


PHP

php中使用大名鼎鼎的CURL来实现API调用:

$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL, $url);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
//https请求必须设置以下两项  
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  
  
//设置凭证  
curl_setopt($ch, CURLOPT_USERPWD, '您的用户名:您的密码');  
  
//执行请求  
$output = curl_exec($ch); 
相关实例: IBM的云平台Bluemix使用初体验——创建PHP Web 应用程序,添加并使用语言翻译服务


Python

Python中使用标准库urllib2来实现API调用

passman = urllib2.HTTPPasswordMgrWithDefaultRealm() #创建域验证对象  
passman.add_password(None, surl, "翻译服务用户名", "密码") #设置域地址,用户名及密码  
auth_handler = urllib2.HTTPBasicAuthHandler(passman) #生成处理与远程主机的身份验证的处理程序  
opener = urllib2.build_opener(auth_handler) #返回一个openerDirector实例  
urllib2.install_opener(opener) #安装一个openerDirector实例作为默认的开启者。  
response = urllib2.urlopen(surl) #打开URL链接,返回Response对象  
resContent = response.read() #读取响应内容  
相关实例: Python Web中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具


Ruby

Ruby使用Net::HTTP类来实现API调用

http = Net::HTTP.new(uri.host, uri.port)  
http.use_ssl = true  
http.verify_mode = OpenSSL::SSL::VERIFY_NONE  
request = Net::HTTP::Get.new(uri.request_uri)  
request.basic_auth "用户名", "密码"  
response = http.request(request) 

相关实例:Ruby On Rails中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具


Go

Go语言使用net/http包来实现API调用,它有个好处是我们可以直接把用户名和密码写在Url中

url = "https://用户名:密码@gateway.watsonplatform.net/language-translation/api/v2/translate?"; 
resp, err := http.Get(url)  //改送HTTP Get请求  
if err != nil {  
	fmt.Fprintf(w, err.Error())  
	return  
}  

if resp != nil && resp.Body != nil {  
	defer resp.Body.Close()  
}  

if resp.StatusCode != http.StatusOK {  
	fmt.Fprintf(w, errors.New(resp.Status).Error())  
	return  
}  

data, err := ioutil.ReadAll(resp.Body)  
if err != nil {  
	fmt.Fprintf(w, err.Error())  
	return  
}
相关实例: IBM的云平台Bluemix使用初体验——创建Go语言 Web 应用程序,添加并使用语言翻译服务


Nodejs

Nodejs使用https包来实现API调用

//模拟HTTP Get请求 	http.get("https://翻译服务用户名:密码@gateway.watsonplatform.net/language-translation/api/v2/translate?" + data, function(gres) {   
	var body = '';  
	gres.on('data',function(d){  
		body += d;  
	 }).on('end', function(){  
	  //console.log(gres.headers);  
	  //console.log(body);  
	  //输出响应内容  
	  res.send("{\"text\":\"" + body + "\"}");  
	 });  
}).on('error', function(e) {   
	console.log("Got error: " + e.message);   
});

相关实例:Node.js中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具


目录
相关文章
|
10月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
937 130
|
11月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
884 2
|
11月前
|
JSON JavaScript API
Python模拟HTTP请求实现APP自动签到
Python模拟HTTP请求实现APP自动签到
|
11月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
12月前
|
缓存 JavaScript 前端开发
Vue 3 HTTP请求封装导致响应结果无法在浏览器中获取,尽管实际请求已成功。
通过逐项检查和调试,最终可以定位问题所在,修复后便能正常在浏览器中获取响应结果。
409 0
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
630 6
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
766 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
12月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
3217 1
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
737 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
前端开发 Java 数据库连接
后端开发中的错误处理实践:原则与实战
在后端开发中,错误处理是保障系统稳定性的关键。本文介绍了错误分类、响应设计、统一处理机制及日志追踪等实践方法,帮助开发者提升系统的可维护性与排障效率,做到防患于未然。