URL-codieren in Erlang
Ich bin mit erlang http:request zu post einige Daten auf einen remote-service. Ich habe die post arbeiten, aber die Daten, die in dem Körper() der Beitrag kommt durch, wie es ist, ohne url-Codierung, die bewirkt, dass der post zu Versagen, wenn analysiert, die remote-service.
Gibt es eine Funktion in Erlang, ist ähnlich zu CGI.Flucht in Ruby für diesen Zweck?
InformationsquelleAutor der Frage davidsmalley | 2008-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie finden hier die YAWS urlencode und urldecode Routinen
Sind Sie ziemlich einfach, obwohl die Kommentare zeigen das codieren ist nicht 100% vollständig für alle Satzzeichen.
InformationsquelleAutor der Antwort Bwooce
Traf ich das fehlen dieser Funktion in der HTTP-Module.
Es stellt sich heraus, dass diese Funktionalität eigentlich in der erlang-Verteilung, man muss nur lange genug sucht.
Verhält sich diese wie CGI.Flucht in Ruby, es gibt auch URI.entkommen, das verhält sich etwas anders:
edoc_lib
InformationsquelleAutor der Antwort
Zumindest R15 gibt es http_uri:Kodieren/1die nicht den job. Ich würde auch nicht empfehlen die Verwendung von edoc_lib:escape_uri als seine übersetzung von einem '=' zu einer %3d anstatt ein "%3D", die verursacht mir einige Probleme.
InformationsquelleAutor der Antwort John-Paul Bader
Hier ist eine einfache Funktion, die nicht den job. Es ist entworfen, um zu arbeiten direkt mit den inets httpc.
Beispiel:
InformationsquelleAutor der Antwort Rick Moynihan
Beantwortung meiner eigenen Frage...ich fand diese lib in ibrowse!
http://www.erlware.org/lib/5.6.3/ibrowse-1.4/ibrowse_lib.html#url_encode-1
URL-kodiert einen string basierend auf RFC 1738. Gibt eine flache Liste.
Ich denke, ich kann die Codierung und trotzdem http:
InformationsquelleAutor der Antwort davidsmalley
Wenn jemand braucht, encode-uri, arbeitet mit utf-8 in erlang:
https://gist.github.com/3796470
Ex.
InformationsquelleAutor der Antwort Renato Albano
Hier ist ein "fork" der edoc_lib:escape_uri-Funktion, verbessert die Unterstützung für UTF-8 und unterstützt auch die binaries.
Beachten Sie, dass, wegen der Verwendung von unicode:characters_to_binary es werden nur arbeiten in R13 oder neuer.
InformationsquelleAutor der Antwort gdamjan
AFAIK gibt es keine URL-encoder im standard-Bibliotheken. Denke, dass ich 'ausgeliehen' der folgende code von YAWS, oder vielleicht einer der anderen Erlang-web-Server:
InformationsquelleAutor der Antwort tonys