dmpspserverrequest.cpp
2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**************************************************************************
* file: dmpspserverrequest.cpp
* Author: wanzhongping
* Date: 2021-01-14 21:59:49
* Email: zhongpingw@chinadci.com
* copyright: 广州城市信息研究所有限公司
***************************************************************************/
#include "dmpspserverrequest.h"
#include <boost/regex.hpp>
#include "dmpserverutils.h"
DmpSpServerRequest::DmpSpServerRequest(SP_HttpRequest* request)
{
const char* h = request->getHeaderValue("host");
std::string host(h);
std::string::size_type p = host.find(":");
if (p != std::string::npos) {
domain_= host.substr(0, p);
port_ = host.substr(p+1,host.length());
}
else {
domain_ = host;
}
const char* med = request->getMethod();
if (med)
{
if (strcmp(med,"POST") == 0)
{
setMethod(POST_METHOD);
data_ = request->getContent();
dataLen_ = request->getContentLength();
}
else
{
setMethod(GET_METHOD);
}
}
//获取querystring
std::string url(request->getURL());
//std::string deurl=Percent::decode( url);
std::string::size_type pos = url.find("?");
if (pos != std::string::npos) {
std::string path = url.substr(0, pos);
setPath(path);
std::string queryString;
queryString = url.substr(pos+1,url.length());
setQuery(queryString);
}
else {
isRestful_ = true;
setPath(url);
}
// for(int i=0; i< request->getParamCount(); i++) {
// SetParameter(request->getParamName(i), request->getParamValue(i));
// }
//添加请求头信息
for(int i=0; i< request->getHeaderCount(); i++) {
setHeader(request->getHeaderName(i),request->getHeaderValue(i));
}
}
const void * DmpSpServerRequest::GetData() const
{
return data_;
}
int DmpSpServerRequest::GetDataLength() const
{
return dataLen_;
}