标签:

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请求(带用户名和密码)实例代码大全相关推荐

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

    RESTful API是目前比较成熟的一套互联网应用程序的API设计理论.而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口:经过一段 ...

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

    RESTful API是目前比较成熟的一套互联网应用程序的API设计理论.而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口:经过一段 ...

  3. c语言控制台光标的坐标范围,C语言之实现控制台光标随意移动的实例代码

    原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方 ...

  4. 用坐标实现物体的移动c语言,C语言之实现控制台光标随意移动的实例代码

    原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方 ...

  5. 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)

    输出1000以内的素数的算法(实例代码) 代码如下所示: 复制代码 代码如下: #include "stdafx.h" #include #include bool IsSushu ...

  6. java递归实现多级菜单栏_Java构建树形菜单以及支持多级菜单的实例代码

    这篇文章主要介绍了Java构建树形菜单的实例代码(支持多级菜单),非常不错,具有参考借鉴价值,需要的朋友可以参考下 效果图:支持多级菜单. 菜单实体类: public class Menu { // ...

  7. java 微信 摇一摇红包_微信小程序“摇一摇”的实例代码

    微信小程序并没有提供摇一摇API接口,但是提供了一个重力感应的API 「wx.onAccelerometerChange(CALLBACK)」,我们可以用这个方法来模拟微信摇一摇功能,代码如下: Pa ...

  8. java chunked 解码_模拟http请求 带 chunked解析办法一

    今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行.于是自己又把c ...

  9. Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...

最新文章

  1. BEP 7:CUDA外部内存管理插件(下)
  2. deepin系统中.txt文件图标显示内容问题_deepin从兴致勃勃到彻底放弃
  3. anacondapythonyolo3配置_Windows anaconda 运行yolov3
  4. CRM软件设计评测点与采集测评点
  5. PaperNotes(19)-Learning Lane Graph Representations for Motion Forecasting
  6. python编写add函数求和_为什么python不利用__iadd__来实现求和和链接运算符?
  7. Unix整理笔记——安全性——里程碑M13
  8. 苹果黑色星期五大促销活动全球上线
  9. 负margin应用案例几则(转载+总结)
  10. 如何从手机上做风控,设备指纹如何下手?
  11. gradle依赖冲突的解决方式
  12. windows上三款能打开超大文本的工具比较:Large Text File Viewer+PilotEdit+LogView
  13. C++行为型模式-中介者模式
  14. 第七十四章 Caché 函数大全 $WREVERSE 函数
  15. Linux 不能命令补全,Linux 命令未自动提示补全
  16. linux下su,su-,sudo命令的区别和用法
  17. AS升级4.1后插件报错的问题
  18. 史上最简单的docker入门到放弃——(利用docker部署web应用)
  19. AD之相同模块布局布线方法
  20. tabulate matlab,matlab中tabulate函数

热门文章

  1. python输出最长字符串_使用Python打印最长的字母子字符串,并打结...
  2. 字库芯片GT20L16S1Y使用记录
  3. 初识BFS POJ-3278 Catch That Cow FZU-2285 迷宫寻宝
  4. js判断字符串是否包含中文或英文
  5. 接到阿里HR面试通过电话的那天我哭了,奋战6个月终进阿里定级P6+
  6. 方格走法-牛客网(排列组合和动态规划)
  7. AI溃败,被Dota2职业战队打蠢!独家专访OpenAI:我们发现一个Bug
  8. 破译《碟中谍》经典画面,解密指纹验证+刷脸!
  9. ipv4v6双栈技术_IPv6过渡技术之双栈技术
  10. qmake:变量手册