Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
1c89c609
Commit
1c89c609
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed #51
parent
ee8edb8b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
45 行增加
和
43 行删除
+45
-43
tests/test_httpApi.cpp
+45
-43
没有找到文件。
tests/test_httpApi.cpp
查看文件 @
1c89c609
...
@@ -56,49 +56,50 @@ onceToken token1([](){
...
@@ -56,49 +56,50 @@ onceToken token1([](){
}
//namespace Http
}
//namespace Http
}
// namespace mediakit
}
// namespace mediakit
void
initEventListener
(){
static
onceToken
s_token
([](){
static
onceToken
s_token
([](){
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastHttpRequest
,[](
BroadcastHttpRequestArgs
){
NoticeCenter
::
Instance
().
addListener
(
nullptr
,
Broadcast
::
kBroadcastHttpRequest
,[](
BroadcastHttpRequestArgs
){
//const Parser &parser,HttpSession::HttpResponseInvoker &invoker,bool &consumed
//const Parser &parser,HttpSession::HttpResponseInvoker &invoker,bool &consumed
if
(
strstr
(
parser
.
Url
().
data
(),
"/api/"
)
!=
parser
.
Url
().
data
()){
if
(
strstr
(
parser
.
Url
().
data
(),
"/api/"
)
!=
parser
.
Url
().
data
()){
return
;
return
;
}
}
//url以"/api/起始,说明是http api"
//url以"/api/起始,说明是http api"
consumed
=
true
;
//该http请求已被消费
consumed
=
true
;
//该http请求已被消费
_StrPrinter
printer
;
_StrPrinter
printer
;
////////////////method////////////////////
////////////////method////////////////////
printer
<<
"
\r\n
method:
\r\n\t
"
<<
parser
.
Method
();
printer
<<
"
\r\n
method:
\r\n\t
"
<<
parser
.
Method
();
////////////////url/////////////////
////////////////url/////////////////
printer
<<
"
\r\n
url:
\r\n\t
"
<<
parser
.
Url
();
printer
<<
"
\r\n
url:
\r\n\t
"
<<
parser
.
Url
();
////////////////protocol/////////////////
////////////////protocol/////////////////
printer
<<
"
\r\n
protocol:
\r\n\t
"
<<
parser
.
Tail
();
printer
<<
"
\r\n
protocol:
\r\n\t
"
<<
parser
.
Tail
();
///////////////args//////////////////
///////////////args//////////////////
printer
<<
"
\r\n
args:
\r\n
"
;
printer
<<
"
\r\n
args:
\r\n
"
;
for
(
auto
&
pr
:
parser
.
getUrlArgs
()){
for
(
auto
&
pr
:
parser
.
getUrlArgs
()){
printer
<<
"
\t
"
<<
pr
.
first
<<
" : "
<<
pr
.
second
<<
"
\r\n
"
;
printer
<<
"
\t
"
<<
pr
.
first
<<
" : "
<<
pr
.
second
<<
"
\r\n
"
;
}
}
///////////////header//////////////////
///////////////header//////////////////
printer
<<
"
\r\n
header:
\r\n
"
;
printer
<<
"
\r\n
header:
\r\n
"
;
for
(
auto
&
pr
:
parser
.
getValues
()){
for
(
auto
&
pr
:
parser
.
getValues
()){
printer
<<
"
\t
"
<<
pr
.
first
<<
" : "
<<
pr
.
second
<<
"
\r\n
"
;
printer
<<
"
\t
"
<<
pr
.
first
<<
" : "
<<
pr
.
second
<<
"
\r\n
"
;
}
}
////////////////content/////////////////
////////////////content/////////////////
printer
<<
"
\r\n
content:
\r\n
"
<<
parser
.
Content
();
printer
<<
"
\r\n
content:
\r\n
"
<<
parser
.
Content
();
auto
contentOut
=
printer
<<
endl
;
auto
contentOut
=
printer
<<
endl
;
////////////////我们测算异步回复,当然你也可以同步回复/////////////////
////////////////我们测算异步回复,当然你也可以同步回复/////////////////
EventPollerPool
::
Instance
().
getPoller
()
->
async
([
invoker
,
contentOut
](){
EventPollerPool
::
Instance
().
getPoller
()
->
async
([
invoker
,
contentOut
](){
HttpSession
::
KeyValue
headerOut
;
HttpSession
::
KeyValue
headerOut
;
//你可以自定义header,如果跟默认header重名,则会覆盖之
//你可以自定义header,如果跟默认header重名,则会覆盖之
//默认header有:Server,Connection,Date,Content-Type,Content-Length
//默认header有:Server,Connection,Date,Content-Type,Content-Length
//请勿覆盖Connection、Content-Length键
//请勿覆盖Connection、Content-Length键
//键名覆盖时不区分大小写
//键名覆盖时不区分大小写
headerOut
[
"TestHeader"
]
=
"HeaderValue"
;
headerOut
[
"TestHeader"
]
=
"HeaderValue"
;
invoker
(
"200 OK"
,
headerOut
,
contentOut
);
invoker
(
"200 OK"
,
headerOut
,
contentOut
);
});
});
});
});
},
nullptr
);
},
nullptr
);
}
int
main
(
int
argc
,
char
*
argv
[]){
int
main
(
int
argc
,
char
*
argv
[]){
//设置退出信号处理函数
//设置退出信号处理函数
...
@@ -111,6 +112,7 @@ int main(int argc,char *argv[]){
...
@@ -111,6 +112,7 @@ int main(int argc,char *argv[]){
//加载配置文件,如果配置文件不存在就创建一个
//加载配置文件,如果配置文件不存在就创建一个
loadIniConfig
();
loadIniConfig
();
initEventListener
();
//加载证书,证书包含公钥和私钥
//加载证书,证书包含公钥和私钥
SSL_Initor
::
Instance
().
loadCertificate
((
exeDir
()
+
"ssl.p12"
).
data
());
SSL_Initor
::
Instance
().
loadCertificate
((
exeDir
()
+
"ssl.p12"
).
data
());
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论