MCPcopy Index your code
hub / github.com/ContainerSSH/ContainerSSH / createRequestForURL

Method createRequestForURL

http/client_impl.go:196–257  ·  view source on GitHub ↗
(method string, u string, requestBody interface{}, logger log.Logger)

Source from the content-addressed store, hash-verified

194}
195
196func (c *client) createRequestForURL(method string, u string, requestBody interface{}, logger log.Logger) (
197 *http.Request,
198 error,
199) {
200 buffer := &bytes.Buffer{}
201 if requestBody != nil {
202 switch c.config.RequestEncoding {
203 case config.RequestEncodingDefault:
204 fallthrough
205 case config.RequestEncodingJSON:
206 err := json.NewEncoder(buffer).Encode(requestBody)
207 if err != nil {
208 // This is a bug
209 err := message.Wrap(err, message.EHTTPFailureEncodeFailed, "BUG: HTTP request encoding failed")
210 logger.Critical(err)
211 return nil, err
212 }
213 case config.RequestEncodingWWWURLEncoded:
214 encoder := schema.NewEncoder()
215 form := url.Values{}
216 if err := encoder.Encode(requestBody, form); err != nil {
217 err := message.Wrap(err, message.EHTTPFailureEncodeFailed, "BUG: HTTP request encoding failed")
218 logger.Critical(err)
219 return nil, err
220 }
221 buffer.WriteString(form.Encode())
222 default:
223 panic(fmt.Errorf("invalid request encoding: %s", c.config.RequestEncoding))
224 }
225 }
226 req, err := http.NewRequest(
227 method,
228 u,
229 buffer,
230 )
231 if err != nil {
232 err := message.Wrap(err, message.EHTTPFailureEncodeFailed, "BUG: HTTP request encoding failed")
233 logger.Critical(err)
234 return nil, err
235 }
236 for header, values := range c.extraHeaders {
237 for i, value := range values {
238 if i == 0 {
239 req.Header.Set(header, value)
240 } else {
241 req.Header.Add(header, value)
242 }
243 }
244 }
245 switch c.config.RequestEncoding {
246 case config.RequestEncodingDefault:
247 fallthrough
248 case config.RequestEncodingJSON:
249 req.Header.Set("Content-Type", "application/json")
250 case config.RequestEncodingWWWURLEncoded:
251 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
252 default:
253 panic(fmt.Errorf("invalid request encoding: %s", c.config.RequestEncoding))

Callers 2

requestURLWithLoggerMethod · 0.95
createRequestMethod · 0.95

Calls 6

EncodeMethod · 0.95
WrapFunction · 0.92
CriticalMethod · 0.65
ErrorfMethod · 0.65
SetMethod · 0.65
AddMethod · 0.65

Tested by

no test coverage detected