feat(httpx): implement optional body logging also on http error (#651)
1. we want optionally to log the body (we don't want to log the body when we're fetching psiphon secrets or tor targets) 2. we want body logging to _also_ happen on error since this is quite useful to debug possible errors when accessing the API This diff adds the above functionality, which were previously described in https://github.com/ooni/probe/issues/1951. This diff also adds comprehensive testing.
This commit is contained in:
parent
ee0aa18616
commit
dba861d262
13 changed files with 229 additions and 17 deletions
|
|
@ -105,7 +105,7 @@ func (c Client) OpenReport(ctx context.Context, rt ReportTemplate) (ReportChanne
|
|||
return nil, ErrUnsupportedFormat
|
||||
}
|
||||
var cor collectorOpenResponse
|
||||
if err := c.APIClientTemplate.Build().PostJSON(ctx, "/report", rt, &cor); err != nil {
|
||||
if err := c.APIClientTemplate.WithBodyLogging().Build().PostJSON(ctx, "/report", rt, &cor); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, format := range cor.SupportedFormats {
|
||||
|
|
@ -144,7 +144,7 @@ func (r reportChan) CanSubmit(m *model.Measurement) bool {
|
|||
func (r reportChan) SubmitMeasurement(ctx context.Context, m *model.Measurement) error {
|
||||
var updateResponse collectorUpdateResponse
|
||||
m.ReportID = r.ID
|
||||
err := r.client.APIClientTemplate.Build().PostJSON(
|
||||
err := r.client.APIClientTemplate.WithBodyLogging().Build().PostJSON(
|
||||
ctx, fmt.Sprintf("/report/%s", r.ID), collectorUpdateRequest{
|
||||
Format: "json",
|
||||
Content: m,
|
||||
|
|
|
|||
Loading…
Reference in a new issue