Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc6c1607

Browse files
author
Chase Geigle
committed
Fix issue#110 and issue#168.
1 parent4e0e198 commitc6c1607

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

‎boost/network/protocol/http/message/async_message.hpp

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,34 @@ namespace boost { namespace network { namespace http {
118118
}
119119

120120
string_typeconstbody()const {
121-
return body_.get();
121+
string_type body;
122+
string_type partial_parsed = body_.get();
123+
124+
typename headers_range<basic_response<Tag> >::type transfer_encoding_range =headers().equal_range("Transfer-Encoding");
125+
if (!empty(transfer_encoding_range) &&boost::iequals(boost::begin(transfer_encoding_range)->second,"chunked")) {
126+
typename string_type::iterator begin = partial_parsed.begin();
127+
string_type crlf ="\r\n";
128+
for (typename string_type::iterator iter =std::search(begin, partial_parsed.end(), crlf.begin(), crlf.end());
129+
iter != partial_parsed.end();
130+
iter =std::search(begin, partial_parsed.end(), crlf.begin(), crlf.end())) {
131+
string_typeline(begin, iter);
132+
if (line.empty())break;
133+
std::stringstreamstream(line);
134+
int len;
135+
stream >> std::hex >> len;
136+
iter +=2;
137+
if (!len)break;
138+
if (len <= partial_parsed.end() - iter) {
139+
body.insert(body.end(), iter, iter + len);
140+
iter += len;
141+
}
142+
begin = iter;
143+
}
144+
}else {
145+
std::swap(body, partial_parsed);
146+
}
147+
148+
return body;
122149
}
123150

124151
voidbody(boost::shared_future<string_type>const & future)const {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp