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使用示例——基于云平台+云服务打造自己的在线翻译工具


目录
相关文章
|
24天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
31 14
|
3天前
|
移动开发 前端开发
nbcio-boot基于jeecg的flowable支持部门经理的单个或多实例支持(后端部分)
nbcio-boot基于jeecg的flowable支持部门经理的单个或多实例支持(后端部分)
|
5天前
|
API Apache Android开发
对于Android的http请求的容错管理
对于Android的http请求的容错管理
|
5天前
|
JSON 数据格式 Python
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
【5月更文挑战第9天】`requests` 库是 Python 中用于HTTP请求的强大工具。要开始使用,需通过 `pip install requests` 进行安装。发送GET请求可使用 `requests.get(url)`,而POST请求则需结合 `json.dumps(data)` 以JSON格式发送数据。PUT和DELETE请求类似,分别调用 `requests.put()` 和 `requests.delete()`。
17 2
|
6天前
|
API
http代理ip请求并发数是什么?有什么用?
HTTP代理IP请求并发数指单个客户端对API或代理IP同时发起的请求数量,分为API链接请求并发和IP最大连接数。并发是瞬时同时请求,不同提供商限制不同。高并发请求的代理IP服务商能更好地应对程序压力。选择时应考虑这一因素。
|
6天前
|
Go
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
|
8天前
|
API UED Python
使用Python进行异步HTTP请求的实践指南
使用Python进行异步HTTP请求的实践指南
20 4
|
14天前
|
JSON 安全 Java
2024年的选择:为什么Go可能是理想的后端语言
【4月更文挑战第27天】Go语言在2024年成为后端开发的热门选择,其简洁设计、内置并发原语和强大工具链备受青睐。文章探讨了Go的设计哲学,如静态类型、垃圾回收和CSP并发模型,并介绍了使用Gin和Echo框架构建Web服务。Go的并发通过goroutines和channels实现,静态类型确保代码稳定性和安全性,快速编译速度利于迭代。Go广泛应用在云计算、微服务等领域,拥有丰富的生态系统和活跃社区,适合作为应对未来技术趋势的语言。
27 0
|
14天前
|
XML JSON 前端开发
获取后端接口请求中的参数(@PathVariable,@RequestParam,@RequestBody区别,使用postman请求
获取后端接口请求中的参数(@PathVariable,@RequestParam,@RequestBody区别,使用postman请求
|
14天前
|
缓存 负载均衡 网络协议
【亮剑】一次完整的HTTP请求的重要性和详细过程
【4月更文挑战第30天】本文介绍了HTTP请求的重要性和详细过程。首先,DNS解析将域名转换为IP地址,通过递归和迭代查询找到目标服务器。接着,TCP三次握手建立连接。然后,客户端发送HTTP请求,服务器处理请求并返回响应。最后,理解这个过程有助于优化网站性能,如使用DNS缓存、HTTP/2、Keep-Alive、CDN和负载均衡等实践建议。