#飘红部分为变量

test_url="http://test"

body_hash={"value"=>100, "year"=>2014, "month"=>11, "day"=>12, "hour"=>16, "minute"=>9, "second"=>0, "host"=>"test"}

body_json=body_hash.to_json

#for curl

curl -X POST -H "Content-Type:application/json" --connect-timeout 10 -m 20 -d '$body_json' $test_url

#for ruby

def send_data(test_url,body_hash)

data=body_hash

data=data.to_json

puts "data for json is #{data}"

url = URI.parse(test_url)

req = Net::HTTP::Post.new(url.path,{'Content-Type' => 'application/json'})

req.body = data

begin

res = Net::HTTP.new(url.host,url.port).start do |http|

http.read_timeout=5

http.request(req)

end

rescue Exception

res = ''

puts "error:#{$!} at:#{$@}!"

puts "post to dest failed!"

return 1
    end

post_res=res.body

puts "post result is #{post_res}"

end

=================================================

#sms发送短信:

#网关给的api请求key,使用 HTTP Basic Auth 方式进行身份验证,使用api作为验证用户名,API key是验证密码

api-key=key-14a206a26676b946e8df722axxxxxxxx

#网关请求api地址

api-url="https://sms-api.xxx.com/v1/send.json"

#短信签名,短信签名指附加在短信内容末尾的署名信息,使用发送者的公司名或产品名,格式为:【XXXXX】

api-name="【测试】"

#for curl

curl -s -k --user api:$api-key $api-url -F mobile='12345678901' -F message='Send message for test! $api-name'

#for python

mob="12345678901"

msg="for test"+api-name

def send_messag(mob,msg):
    print mob
    print msg
    resp = requests.post((api-url),
    auth=("api", api-key),
    data={
    "mobile": mob,
    "message": msg
    },timeout=3 , verify=False);
    result = json.loads( resp.content )
    print result

#for php,未测试

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$api-url);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPAUTH , CURLAUTH_BASIC);

curl_setopt($ch, CURLOPT_USERPWD , 'api:$api-key');

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_POSTFIELDS, array('mobile' => '12345678901','message' => 'test【测试】'));

$res = curl_exec( $ch );

curl_close( $ch );

//$res = curl_error( $ch );

var_dump($res);

================ruby uri====================

require 'uri'

uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
#=> #<URI::HTTP:0x00000000b14880
URL:http://foo.com/posts?id=30&limit=5#time=1305298413>
uri.scheme
#=> "http"
uri.host
#=> "foo.com"
uri.path
#=> "/posts"
uri.port #=> "80"
uri.query 
#=> "id=30&limit=5" uri.fragment #=> "time=1305298413"
uri.to_s
#=> "http://foo.com/posts?id=30&limit=5#time=1305298413"

ruby,python及curl post请求的更多相关文章

  1. 【转】提交http请求之python与curl

    提交http请求之python与curl 由于Openstack是python实现wsgi的REST ful架构,在学习和调试的过程中,常常会遇到http请求的提交,于是顺手整理下python和cur ...

  2. python学习--curl

    PyCurl是一个C语言写的libcurl的python绑定库.libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库.它的功能很强大,PycURL 是一个非常快速(参考多并发操作) ...

  3. python 3 处理HTTP 请求的包

    http http: https://docs.python.org/3/library/http.html http是一个包,里面含有多个模块:http.client,http.server,htt ...

  4. python CSRF跨站请求伪造

    python CSRF跨站请求伪造 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  5. curl get请求添加header头信息

    function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CU ...

  6. linux c++ curl https 请求并双向验证SSL证书

    1.配置curl https请求需要提供 CA证书.客户端证书和客户端秘钥,这三个文件的pem格式. 分别对应 curl_easy_setopt() 函数的 下面三个参数: CURLOPT_CAINF ...

  7. python发送HTTP POST请求

    1. 127.0.0.1和0.0.0.0 127.0.0.1是一个回送地址,指本地机,一般用来本机测试使用,使用127.0.0.1启的服务只能在本地机器上访问,使用0.0.0.0启的服务可以在其他机器 ...

  8. 转:PHP中的使用curl发送请求(GET请求和POST请求)

    原文地址:http://www.jb51.net/article/104974.htm 使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 1.初始 ...

  9. python error: curl: (1) Protocol "'https" not supported or disabled in libcurl

    python 调用curl访问一个网页时,出现error: curl: (1) Protocol "'https" not supported or disabled in lib ...

随机推荐

  1. SQL Server 2008中的Hints(提示)的简单整理

    SQL Server的系统查询过程 负责在SELECT查询执行时候产生查询执行计划.SQL Server会“智能”地选择一个高效计划来取代低效的一个.大多数时候,SQL Server会把这份工作干得很 ...

  2. 提高ASP.NET首页性能的十大方法

    本文是我对ASP.NET页面载入速度提高的一些做法,这些做法分为以下部分: http://www.cnblogs.com/xiachufeng/archive/2011/11/09/2242130.h ...

  3. 4667 Building Fence 解题报告

    题意:给n个圆和m个三角形,且保证互不相交,用一个篱笆把他们围起来,求最短的周长是多少. 解法1:在每个圆上均匀的取2000个点,求凸包周长就可以水过. 解法2:求出所有圆之间的外公切线的切点,以及过 ...

  4. PHPCMS详细文件目录结构

    PHPCMS详细文件目录结构 根目录 |  –  api  接口文件目录 |  –  caches 缓存文件目录 |  – configs 系统配置文件目录 |  – caches_* 系统缓存目录 ...

  5. Tkinter教程之Text篇(1)

    from Tkinter import *root = Tk()t = Text() for i in range(1,10): t.insert(1.0,'0123456789\n')a = 'te ...

  6. 1z0-052 q209_2

    2: View the Exhibit to examine the output produced by the following query at three different times s ...

  7. 【FAI】七日年化收益与万份收益的理解

    七日年化收益:其实指的一年的收益(应该忽略”七日”),这里的七日指的是取最近七日年化的结果 万份收益:每万元每天的收益 可以使用下图来清晰识别: 例子: 10000元按照5%的七日年化收益计算的话: ...

  8. Hystrix的一个坑,queue中的run方法没有被执行?

    今天学的时候随手测了一下Hystrix的queue的异步执行,发现执行queue之后,还没有打印run方法中的内容,程序就结束了: import com.netflix.hystrix.Hystrix ...

  9. java SequenceInputStream类(序列输入流)的用法示例

    public class SequenceInputStreamextends InputStream SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 ...

  10. Linux下umask的缺省默认权限

    Linux有缺省默认文件.文件夹权限umask.默认 777 -xxx(文件夹)  666 - xxx(文件) 11.查看当前用户umask R(4)--W(2)--X(1) [root@mvpban ...