Home » Community » U++ community news and announcements » New Core
Re: New Core [message #46478 is a reply to message #46455] |
Sat, 14 May 2016 09:03   |
 |
mirek
Messages: 14257 Registered: November 2005
|
Ultimate Member |
|
|
Mindtraveller wrote on Thu, 12 May 2016 15:10mirek wrote on Wed, 11 May 2016 19:40For years, there is a superior alternative in Core, HttpRequest. It can handle much more of http and is (if needed) async.
Yes, I was aware of the HttpRequest alternative. But HttpQuery represented slightly different functionality. It gave a number of useful routines for URL parsing. I used it in http server code to parse URL variables of incoming http request.
while (!shutdown)
{
if (server->IsError())
{
server.Clear();
server.Create().Listen(answerPort,100);
Sleep(200);
}
TcpSocket socket;
socket.Timeout(2000);
if (!socket.Accept(*server))
{
Sleep(50);
continue;
}
HttpHeader http;
http.Read(socket);
int len = static_cast<int>(http.GetContentLength());
if (len > 0)
socket.GetAll(len);
HttpQuery query(http.GetURI());
String rq = query.GetString("RQ"); // this is where HttpQuery is actually used
if (rq == "REQ1")
{
}
else if (rq == "REQ2")
{
}
else if (rq == "REQ3")
{
}
...
I see.
Well, looks like we need to move this piece of code from Skylark to Core, right?
void Http::ParseRequest(const char *p)
{
while(*p) {
const char *last = p;
while(*p && *p != '=' && *p != '&')
p++;
String key = UrlDecode(last, p);
if(*p == '=')
p++;
last = p;
while(*p && *p != '&')
p++;
if(*key != '.' && *key != '@') {
if(key.EndsWith("[]")) {
Value &v = var.GetAdd(key);
if(v.IsNull())
v = ValueArray();
(ValueArray &)v << UrlDecode(last, p);
}
else
var.GetAdd(key) = UrlDecode(last, p);
}
if(*p)
p++;
}
}
|
|
|
 |
|
New Core
By: mirek on Tue, 03 May 2016 16:17
|
 |
|
Re: New Core
By: koldo on Wed, 04 May 2016 09:38
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Thu, 05 May 2016 09:26
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Fri, 06 May 2016 13:10
|
 |
|
Re: New Core
By: mirek on Wed, 11 May 2016 10:54
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Sun, 08 May 2016 06:31
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Mon, 09 May 2016 11:23
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Mon, 09 May 2016 17:25
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Wed, 11 May 2016 10:40
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Sat, 14 May 2016 08:00
|
 |
|
Re: New Core
By: Zbych on Sun, 08 May 2016 18:08
|
 |
|
Re: New Core
By: mirek on Mon, 09 May 2016 11:23
|
 |
|
Re: New Core
By: mr_ped on Tue, 10 May 2016 00:31
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Wed, 11 May 2016 10:33
|
 |
|
Re: New Core
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Wed, 11 May 2016 18:40
|
 |
|
Re: New Core
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Sat, 14 May 2016 09:03
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Sun, 15 May 2016 20:40
|
 |
|
Re: New Core
By: mirek on Wed, 11 May 2016 10:34
|
 |
|
Re: New Core
By: Novo on Thu, 12 May 2016 04:45
|
 |
|
Re: New Core
By: mirek on Thu, 12 May 2016 09:09
|
 |
|
Re: New Core
By: Novo on Thu, 12 May 2016 16:23
|
 |
|
Re: New Core
By: mirek on Sat, 14 May 2016 07:59
|
 |
|
Re: New Core
By: Novo on Fri, 03 June 2016 01:23
|
 |
|
Re: New Core
By: Novo on Thu, 12 May 2016 17:08
|
 |
|
Re: New Core
|
 |
|
Re: New Core
|
 |
|
Re: New Core
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Wed, 18 May 2016 14:25
|
 |
|
Re: New Core
By: mirek on Wed, 18 May 2016 14:36
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Wed, 18 May 2016 20:44
|
 |
|
Re: New Core
|
 |
|
Re: New Core
|
 |
|
Re: New Core
By: mirek on Sat, 21 May 2016 13:30
|
 |
|
Re: New Core
By: mirek on Sat, 14 May 2016 07:52
|
 |
|
Re: New Core
By: mirek on Sat, 14 May 2016 08:56
|
 |
|
Re: New Core
By: mirek on Sat, 21 May 2016 13:40
|
Goto Forum:
Current Time: Mon May 12 04:01:40 CEST 2025
Total time taken to generate the page: 0.02744 seconds
|