Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
45631645
H
hub
项目概览
github
/
hub
11 个月 前同步成功
通知
3
Star
22523
Fork
2406
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
45631645
编写于
1月 17, 2012
作者:
M
Mislav Marohnić
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
split http_request into smaller methods
上级
d789e803
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
27 deletion
+27
-27
lib/hub/commands.rb
lib/hub/commands.rb
+27
-27
未找到文件。
lib/hub/commands.rb
浏览文件 @
45631645
...
...
@@ -937,6 +937,20 @@ help
req
=
Net
::
HTTP
.
const_get
(
type
).
new
(
url
.
request_uri
)
req
.
basic_auth
"
#{
user
}
/token"
,
token
if
user
and
token
http
=
setup_http
(
url
)
yield
req
if
block_given?
http
.
start
{
http
.
request
(
req
)
}
end
def
http_post
(
url
,
params
=
nil
)
http_request
(
url
,
:Post
)
do
|
req
|
req
.
set_form_data
params
if
params
req
[
'Content-Length'
]
=
req
.
body
?
req
.
body
.
length
:
0
end
end
def
setup_http
(
url
)
port
=
url
.
port
if
use_ssl
=
'https'
==
url
.
scheme
and
not
use_ssl?
# ruby compiled without openssl
...
...
@@ -944,40 +958,18 @@ help
port
=
80
end
# sniff out proxy settings
if
use_ssl
proxy
=
ENV
[
'HTTPS_PROXY'
]
||
ENV
[
'https_proxy'
]
else
proxy
=
ENV
[
'HTTP_PROXY'
]
||
ENV
[
'http_proxy'
]
http_args
=
[
url
.
host
,
port
]
if
proxy
=
proxy_url
(
use_ssl
)
http_args
.
concat
proxy
.
select
(
:host
,
:port
,
:user
,
:password
)
end
if
proxy
# use an HTTP(S) proxy
unless
/^[^:]+:\/\//
=~
proxy
proxy
=
"http://
#{
proxy
}
"
end
proxy
=
URI
.
parse
(
proxy
)
http
=
Net
::
HTTP
.
new
(
url
.
host
,
port
,
proxy
.
host
,
proxy
.
port
,
proxy
.
user
,
proxy
.
password
)
else
http
=
Net
::
HTTP
.
new
(
url
.
host
,
port
)
end
http
=
Net
::
HTTP
.
new
(
*
http_args
)
if
http
.
use_ssl
=
use_ssl
# TODO: SSL peer verification
http
.
verify_mode
=
OpenSSL
::
SSL
::
VERIFY_NONE
end
yield
req
if
block_given?
http
.
start
{
http
.
request
(
req
)
}
end
def
http_post
(
url
,
params
=
nil
)
http_request
(
url
,
:Post
)
do
|
req
|
req
.
set_form_data
params
if
params
req
[
'Content-Length'
]
=
req
.
body
?
req
.
body
.
length
:
0
end
return
http
end
def
load_net_http
...
...
@@ -990,6 +982,14 @@ help
defined?
::
OpenSSL
end
def
proxy_url
(
use_ssl
)
env_name
=
"HTTP
#{
use_ssl
?
'S'
:
''
}
_PROXY"
if
proxy
=
ENV
[
env_name
]
||
ENV
[
env_name
.
downcase
]
proxy
=
"http://
#{
proxy
}
"
unless
proxy
.
include?
'://'
URI
.
parse
(
proxy
)
end
end
# Fake exception type for net/http exception handling.
# Necessary because net/http may or may not be loaded at the time.
module
HTTPExceptions
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录