2012-09-03 4 views
0

http://localhost:3000/register?name=Chris&job=typist과 같은 URL 매개 변수를 보내려고합니다. 한 번에 모두 httpc:request 문자열로 보낼 수 있지만 URL에 쿼리 매개 변수를 넣는 기능을 찾을 수 없습니다 (사전 지정).쿼리 매개 변수를 Erlang HTTP 요청에 전달하십시오.

이 기능이있는 다른 HTTP 라이브러리가 있습니까?

해시/이력서 /지도 (json { "a": "b", "c": "d"})가있는 루트 URL을 지정하여 끝까지 정확하게 추가하고 싶습니다. URL의. 예를 들어, "www.facebook.com"[{"a", "b"}, {"c", "d"}]을 지정하면 "www.facebook.com?a=b&c=d"이됩니다. 내가 가 정확히 튜플에서 쿼리 문자열을 구성하려는 경우 당신은 "해시"에 의해 의미,하지만, 그건을하지 확신 Ruby: How to turn a hash into HTTP parameters?

+0

«무엇을 의미합니까«검색어 params를 url에 넣으시겠습니까?» – rks

+0

방금 ​​질문을 편집했습니다 – Chris

답변

0

: 여기

는 루비에 대한 비슷한 질문입니다 상당히 까다 롭다.

저는 원하는 기능을 제공하기 위해 httpc의 메소드에 익숙하지 않습니다. 요청/4와 비슷한 래퍼를 매우 쉽게 작성할 수있다.

(이 프로그램은 모든 오류를 용서하고 아이디어를주기 위해 급하게 제작되었습니다.)

request(Method, Domain, {Path, Query, Fragment}, HTTPOptions, Options) -> 
    QueryString = lists:flatten([Path, 
        case Query of "" -> ""; _ -> [$? | Query] end, 
        case Fragment of "" -> ""; _ -> [$# | Fragment] end]); 
    Request = concat(Domain, QueryString); 
    httpc:request(Method, {Request, []}, HTTPOptions, Options). 

이 기능을이 "www.facebook.com?a=b&c=d"을 반환 test("www.facebook.com",[{"a", "b"}, {"c", "d"}]).

test(URL,QP)->URL++"?"++loop(QP,[]). 

loop([{A,B}],QP)->QP++A++"="++B; 
loop([{A,B}|T],QP)->loop(T,QP++A++"="++B++"&"). 

전화를 시도

request(get, "http://www.example.com", {"/path", "", "bar?baz}, HTTPOptions, Options)

+0

해시/dictonary/map (json { "a": "b", "c": "d"})이있는 루트 URL을 제공하고 싶습니다. url의 끝. => "www.facebook.com?a=b&c=d" – Chris

+0

얼랭 (Erlang)의 문자열 처리 능력이 부족할 수도 있지만, 그렇게하기 쉬운 방법을 쓸 수 있다고 생각합니다. 알아낼 수없는 경우 mochijson2와 같은 라이브러리를 참조하십시오. –

관련 문제