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);//创建并指定服务凭证,认证方案为BasichttpClient.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使用示例——基于云平台+云服务打造自己的在线翻译工具

相关参考:HTTP基本认证(Basic Authentication)

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

Web后端语言模拟http请求 带用户名和密码 实例代码大全相关推荐

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

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

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

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

  3. 带用户名和密码的GitHub链接

    该文章的最新版本已迁移至个人博客[比特飞],单击链接:带用户名和密码的GitHub链接 | .Net中文网. 前言 由于各种原因,我们可能需要在开发工具中使用带用户名和密码的GitHub链接,此时可以 ...

  4. 设置带用户名和密码的telnet登入方式(原创)

    Router1 E0/0 <----> Router2 E0/0 设置带用户名和密码的登入方式 <?xml:namespace prefix = o ns = "urn:s ...

  5. python3爬虫实例代码-Python3爬虫带上cookie的实例代码

    Cookie的英文原意是"点心",它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的"点心".服务器可以根据Cookie来 ...

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

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

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

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

  8. ObjectARX创建带文字的线型实例代码

    ObjectARX创建带文字的线型实例代码 AcDbLinetypeTable* pLinetypeTable=NULL;Acad::ErrorStatus es = acdbHostApplicat ...

  9. web后端语言_web前端学习路线图_快速入门web前端学习路线图

    如何学好Web前端开发技术?前端学习路线是什么?如今,移动开发的发展依旧如火如荼,企业对于Web前端人才需求产生了巨大的缺口,从事Web前端开发的程序员们则是其中较大的获益者.Web前端的广泛运用,造 ...

最新文章

  1. java鉴权_一个开箱即用的高效认证鉴权框架,专注于restful api的认证鉴权动态保护...
  2. C++_泛型编程与标准库(九)——红黑树的使用
  3. 超百家金融机构争相出席,只因飞贷宣布输出全球领先的移动信贷整体技术
  4. down redis集群_Redis总结(十)redis集群-哨兵模式
  5. SAP Webclient UI和Fiori UI的混搭
  6. Struts2 ognl中的#、%和$符号用法说明
  7. rpt水晶报表制作过程
  8. English trip -- VC(情景课)4 A Health
  9. c语言运算符 ,C语言关于位和运算符
  10. 设计模式学习一:strategyPattern
  11. 全面剖析雅虎助手以及网络实名的流氓行径(4)
  12. 学会数据可视化,轻松做出企业级可视化报表
  13. 多租户商城开发 多租户SaaS商城源码下载
  14. leetcode刷题(第739题)——每日温度
  15. java华氏温度与摄氏度的互相转换
  16. 电脑英语--著名软件篇
  17. Bose SoundLink Revolve或者Bose SoundLink Revolve+ AUX音频播放一会没有声音
  18. JAVA开发---微信文章留言功能实现
  19. Chrome的启动参数
  20. python和access哪个好过计算机二级_大一考计算机二级,那考office、C语言、VB、Java、Access还是Python好呢?...

热门文章

  1. excel快速删除空行
  2. HR详谈求职简历筛选之道
  3. java hgetall_详解Java使用Pipeline对Redis批量读写(hmsethgetall)
  4. HTML第一周学习笔记(标题重置版)
  5. vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑
  6. 初见物理引擎库Cannon.js:使用dat.gui修改物体属性
  7. css 修改文字基准线_HTML4/HTML5 用CSS或style属性修改 hr 实线 虚线 点线 双实线样式 ... ......
  8. 使用eNSP搭建一个简单的网络
  9. hadoop集群平台的搭建
  10. 【Axure交互教程】图表载入效果(柱状图/折线图/饼图)