java http 用户名密码_Web后端语言模拟http请求(带用户名和密码)实例代码大全
标签:
RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口;经过一段时间的IBM的云平台Blumemix的学习及语言翻译服务的应用,积累了Java、ASP.NET、Nodejs、Go、PHP、Python、Ruby等语言调用Rest 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);
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)
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);
});
标签:
java http 用户名密码_Web后端语言模拟http请求(带用户名和密码)实例代码大全相关推荐
- Web后端语言模拟http请求(带用户名和密码)实例代码大全
RESTful API是目前比较成熟的一套互联网应用程序的API设计理论.而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口:经过一段 ...
- Web后端语言模拟http请求 带用户名和密码 实例代码大全
RESTful API是目前比较成熟的一套互联网应用程序的API设计理论.而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口:经过一段 ...
- c语言控制台光标的坐标范围,C语言之实现控制台光标随意移动的实例代码
原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方 ...
- 用坐标实现物体的移动c语言,C语言之实现控制台光标随意移动的实例代码
原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方 ...
- 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
输出1000以内的素数的算法(实例代码) 代码如下所示: 复制代码 代码如下: #include "stdafx.h" #include #include bool IsSushu ...
- java递归实现多级菜单栏_Java构建树形菜单以及支持多级菜单的实例代码
这篇文章主要介绍了Java构建树形菜单的实例代码(支持多级菜单),非常不错,具有参考借鉴价值,需要的朋友可以参考下 效果图:支持多级菜单. 菜单实体类: public class Menu { // ...
- java 微信 摇一摇红包_微信小程序“摇一摇”的实例代码
微信小程序并没有提供摇一摇API接口,但是提供了一个重力感应的API 「wx.onAccelerometerChange(CALLBACK)」,我们可以用这个方法来模拟微信摇一摇功能,代码如下: Pa ...
- java chunked 解码_模拟http请求 带 chunked解析办法一
今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行.于是自己又把c ...
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...
最新文章
- BEP 7:CUDA外部内存管理插件(下)
- deepin系统中.txt文件图标显示内容问题_deepin从兴致勃勃到彻底放弃
- anacondapythonyolo3配置_Windows anaconda 运行yolov3
- CRM软件设计评测点与采集测评点
- PaperNotes(19)-Learning Lane Graph Representations for Motion Forecasting
- python编写add函数求和_为什么python不利用__iadd__来实现求和和链接运算符?
- Unix整理笔记——安全性——里程碑M13
- 苹果黑色星期五大促销活动全球上线
- 负margin应用案例几则(转载+总结)
- 如何从手机上做风控,设备指纹如何下手?
- gradle依赖冲突的解决方式
- windows上三款能打开超大文本的工具比较:Large Text File Viewer+PilotEdit+LogView
- C++行为型模式-中介者模式
- 第七十四章 Caché 函数大全 $WREVERSE 函数
- Linux 不能命令补全,Linux 命令未自动提示补全
- linux下su,su-,sudo命令的区别和用法
- AS升级4.1后插件报错的问题
- 史上最简单的docker入门到放弃——(利用docker部署web应用)
- AD之相同模块布局布线方法
- tabulate matlab,matlab中tabulate函数
热门文章
- python输出最长字符串_使用Python打印最长的字母子字符串,并打结...
- 字库芯片GT20L16S1Y使用记录
- 初识BFS POJ-3278 Catch That Cow FZU-2285 迷宫寻宝
- js判断字符串是否包含中文或英文
- 接到阿里HR面试通过电话的那天我哭了,奋战6个月终进阿里定级P6+
- 方格走法-牛客网(排列组合和动态规划)
- AI溃败,被Dota2职业战队打蠢!独家专访OpenAI:我们发现一个Bug
- 破译《碟中谍》经典画面,解密指纹验证+刷脸!
- ipv4v6双栈技术_IPv6过渡技术之双栈技术
- qmake:变量手册