Giter Club home page Giter Club logo

Comments (5)

drewcoo avatar drewcoo commented on May 19, 2024 1

@Reloner - you can capture everything from just after the question mark to the end of the string. Then you can split that (presumably into a vector) on ampersands. Then you can split each of those (presumably into a map) on equal signs. You now have key-value pairs and don't need to worry about ordering or even number of pairs in the regular expression.

I don't think this is a bug with this library.

(Nice job, @eidheim.! I was just checking out your open issues to decide whether to use your library and it looks pretty clean/safe.)

from simple-web-server.

eidheim avatar eidheim commented on May 19, 2024

See https://github.com/eidheim/Simple-Web-Server/blob/master/http_examples.cpp#L79. You get the parameters using request->path_match. [1] corresponds to signature, [2] timestamp and so on.

from simple-web-server.

Reloner avatar Reloner commented on May 19, 2024

@eidheim ,without effect,
When a regular expression is judged, it does not hold, so it can not be used to obtain the parameters in this method.

from simple-web-server.

eidheim avatar eidheim commented on May 19, 2024

I got it working with the following regex (only two parameters):
server.resource["^/login\\?signature=([0-9]+)&timestamp=([0-9]+)$"]["GET"]=
There are some alternatives you could do:

  • require the parameters to come in a specific order, although this is not according to HTTP standard
  • use a separate GET parameter parser, or create on yourself. For instance use the following resource then:
    server.resource["^/login\\?(.*)$"]["GET"]= and parse `request->path_match[1].
  • set the arguments to the HTTP header instead

from simple-web-server.

eidheim avatar eidheim commented on May 19, 2024

Closing this since we have added Server::Request::parse_query_string()

from simple-web-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.