@@ -61,20 +61,8 @@ call(#{schema := Schema, uri := URI} = State, OperationId, Args0, Opts) when is_
6161 #{raw_body := _ } -> <<" raw_file_upload" >>;
6262 _ -> RequestBody
6363 end ]),
64- Timeout = proplists :get_value (timeout , Opts , 50000 ),
65- Request = case Method of
66- get ->
67- {RequestURL , RequestHeaders };
68- _ ->
69- ContentType = proplists :get_value (" Content-Type" , RequestHeaders , " text/plain" ),
70- {RequestURL , RequestHeaders , ContentType , RequestBody }
71- end ,
72- Result = case httpc :request (Method , Request , [{timeout , Timeout }], [{body_format , binary }]) of
73- {ok , {{_ , Code0 , _ }, ResponseHeaders0 , Bin0 }} ->
74- {ok , Code0 , [{string :to_lower (K ),V } || {K ,V } <- ResponseHeaders0 ], Bin0 };
75- {error , E0 } ->
76- {error , E0 }
77- end ,
64+ HttpRequestFun = proplists :get_value (http_request_fun , Opts , fun http_request_httpc /5 ),
65+ Result = HttpRequestFun (Method , RequestURL , RequestHeaders , RequestBody , Opts ),
7866
7967 case Result of
8068 {ok , Code ,ResponseHeaders ,Bin } when is_map_key (Code , Responses ) ->
@@ -137,6 +125,31 @@ call(#{} = State, OperationId, Args, Opts) ->
137125 end .
138126
139127
128+ -spec http_request_httpc (
129+ Method :: get | post | put | patch | delete ,
130+ URL :: uri_string :uri_string (),
131+ Headers :: [{string (), string ()}],
132+ Body :: binary (),
133+ Opts :: proplists :proplist ()
134+ ) ->
135+ {ok , Status :: integer (), Headers :: [{NameLowercase :: string (), string ()}], Body :: binary ()} |
136+ {error , any ()}.
137+
138+ http_request_httpc (Method , RequestURL , RequestHeaders , RequestBody , Opts ) ->
139+ Timeout = proplists :get_value (timeout , Opts , 50000 ),
140+ Request = case Method of
141+ get ->
142+ {RequestURL , RequestHeaders };
143+ _ ->
144+ ContentType = proplists :get_value (" Content-Type" , RequestHeaders , " text/plain" ),
145+ {RequestURL , RequestHeaders , ContentType , RequestBody }
146+ end ,
147+ case httpc :request (Method , Request , [{timeout , Timeout }], [{body_format , binary }]) of
148+ {ok , {{_ , Code0 , _ }, ResponseHeaders0 , Bin0 }} ->
149+ {ok , Code0 , [{string :to_lower (K ), V } || {K , V } <- ResponseHeaders0 ], Bin0 };
150+ {error , E0 } ->
151+ {error , E0 }
152+ end .
140153
141154
142155search_operation (OperationId , #{paths := Paths }) ->
0 commit comments