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

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

时间: 2024-10-22 17:40:19

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

模拟http请求 带 chunked解析办法一

今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行.于是自己又把cookie和一大堆header给加上,还是同样的问题,于是开始郁闷了.PHP脚本不行,但是同样的提交浏览器上面就行,这个是怎么回事呢?于是开始分析能看到的数据,终于看到一个特别的地方,我们平时请求数据的时候都会在header里面看到一个 Coontent-Length: xxxx 这个是表示这次发送

模拟http请求 带 chunked解析办法二

以PHP代码为例 //这个是解析chuned块 get_chunk_data($fsock) { $data = ''; while(true) { $len = hexdec(fgets($fsock)); if($len == 0) { if(fgets($fsock) == "\r\n") break; } $data .= fread($fsock, $len); fgets($fsock); } return $data; } //这是PHP获取socket内容 while(

利用axis2调用带用户名和密码的webservice接口实例(java)

因工作需要,需要调用合作公司的一些接口方法.调了一下午才调通,记下来,以作备忘,不废话,直接代码. import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class OrderProcessClient { public static int getRes(String user,String pwd,String or

web服务器和后端语言的关系

1.web服务nginx和php的相互关系  : https://www.cnblogs.com/luckylihuizhou/p/6387171.html 个人理解:web服务器本身没有处理后端语言的功能,只是对前端请求做出基本响应.但是web服务器可以和解析后端语言的程序进行交互,这样web服务器就可以执行相应的后端语言(即后端程序). 如:nginx服务器(一个web服务器),中配置了php程序(执行php语言的程序,而不是php语言).则nginx服务器就可以执行php语言了. 2.ph

20150108--HTTP协议+PHP模拟HTTP请求-02

HTTP协议 1. 什么是http协议? 协议:协议是一种双方约定好的规范,双方在做某一件事情的事情,必须按照事先定义好的规范去实现和操作. HTTP:超文本传输协议,HyperText Transport Protocol,超文本在服务器与浏览器之间传输的时候必须遵循的协议. 2. 什么是html? 超文本标记语言:HyperText Markup Language html的作用:保证同一数据在不同的电脑(用户),看到的效果一样. HTTP协议工作原理 HTTP协议特点 支持客户/服务器模式

使用fiddler模拟http请求

出处:http://zhuqil.cnblogs.com 概述  与httpwath相比,fiddler能模拟http请求.能断点调试.http分析统计吸引了我,使用之后感觉这个工具非常不错,这篇文章只单介绍一下fiddler工作原理,简单介绍一下它的重要功能,以及如何使用使用fiddler模拟http请求,满足移动服务端开发人员调试的问题.对于其他的功能大家可以自己研究一下. fiddler工作原理: 当你启动了Fiddler,程序将会把自己作为一个微软互联网服务的系统代理.作为系统代理,所有

php、python、ruby——web脚本语言的比较

原文地址:http://klau.si/php-vs-python-vs-ruby 摘要 在过去几年里,在web应用程序编程中,脚本语言变得越来越受欢迎.本论文试图在如今三种最受欢迎的语言:PHP.Python和Ruby中找到其中的差异.优点.缺点.很明显,他们有他们自己的观点和支持,所以要陈述客观事实并满足一种科学的方法是一项困难的任务.这三种语言将在web应用程序环境进行有关历史.进化.流行程度.语法.语义.功能.安全性和性能方面做评估.最后,一个最终的结论将建议最有前途的一种语言. 1.介

PHP+SOCKET 模拟HTTP请求

HTTP消息结构 客户端请求包括四部份:请求行(状态行).请求头.空行.请求主体(数据),如下图: 服务端响应包括四部份:响应行(状态行).响应头.空行.响应主体(数据),如图: HTTP请求方法: POST .GET  .HEADE.  PUT.  TRACE  .DELETE .OPTIONS .CONNECT  (前三种最实用),有这麽多的请求方法,但web服务器不一定所有的都支持. GET   基本一致,请求指定的页面信息,并返回实体主体. HEAD  基本和GET一致 ,只不过返回的响

8.app后端和web后端的区别

很多从web后端转到app后端的小伙伴经常很茫然,不知道这两者之间有啥区别.本文通过例子,分析web后端和app后端的区别,使各位更好地把握app后端的架构. (1) app后端要慎重考虑网络传输的流量,主要是api设计,图片处理上 现阶段,手机上网的资费还是要按照流量算的,一般的3G用户,每个月的流量几百M,4G用户,每个月的流量也就几G. 如果不考虑网络传输的流量,一张图片就占了几百K,流量用得飞快的. 在前面的文章<7.app和app后端的通讯>中提到,api的返回结果一般是json格式