From 7c1cb4a28dae0ff22fa9bd2e69d9f83abf90069c Mon Sep 17 00:00:00 2001 From: shinofara Date: Tue, 31 Jul 2018 19:50:54 +0900 Subject: [PATCH 1/2] Fixed: Invalid request. --- ml/v1/ml-gen.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ml/v1/ml-gen.go b/ml/v1/ml-gen.go index 0b0b91271e5..23fc3def4e9 100644 --- a/ml/v1/ml-gen.go +++ b/ml/v1/ml-gen.go @@ -2705,7 +2705,10 @@ func (c *ProjectsGetConfigCall) doRequest(alt string) (*http.Response, error) { c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:getConfig") urls += "?" + c.urlParams_.Encode() - req, _ := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, @@ -2836,15 +2839,15 @@ func (c *ProjectsPredictCall) doRequest(alt string) (*http.Response, error) { } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudmlv1__predictrequest) - if err != nil { - return nil, err - } + body = strings.NewReader(c.googlecloudmlv1__predictrequest.HttpBody.Data) reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:predict") urls += "?" + c.urlParams_.Encode() - req, _ := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, @@ -2884,10 +2887,7 @@ func (c *ProjectsPredictCall) Do(opts ...googleapi.CallOption) (*GoogleApi__Http HTTPStatusCode: res.StatusCode, }, } - target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } + ret.DataReader = res.Body return ret, nil // { // "description": "Performs prediction on the data in the request.\nCloud ML Engine implements a custom `predict` verb on top of an HTTP POST\nmethod. \u003cp\u003eFor details of the request and response format, see the **guide\nto the [predict request format](/ml-engine/docs/v1/predict-request)**.", From 0b8fe77bb006d889900f796bf5ffbc119ab63e76 Mon Sep 17 00:00:00 2001 From: shinofara Date: Tue, 31 Jul 2018 20:43:33 +0900 Subject: [PATCH 2/2] Add: GoogleApi__HttpBody.DataReader --- ml/v1/ml-gen.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ml/v1/ml-gen.go b/ml/v1/ml-gen.go index 23fc3def4e9..54240a87cdd 100644 --- a/ml/v1/ml-gen.go +++ b/ml/v1/ml-gen.go @@ -23,6 +23,7 @@ import ( "net/url" "strconv" "strings" + "io/ioutil" ) // Always reference these packages, just in case the auto-generated code @@ -198,6 +199,10 @@ type GoogleApi__HttpBody struct { // Data: HTTP body binary data. Data string `json:"data,omitempty"` + // DataReader is a TensorTask modification to make sending files from GCS + // oh so much more efficient. + DataReader io.Reader `json:"-"` + // Extensions: Application specific response metadata. Must be set in // the first response // for streaming APIs. @@ -2887,7 +2892,12 @@ func (c *ProjectsPredictCall) Do(opts ...googleapi.CallOption) (*GoogleApi__Http HTTPStatusCode: res.StatusCode, }, } - ret.DataReader = res.Body + b, err := ioutil.ReadAll(res.Body) + if err != nil { + return nil, err + } + + ret.Data = string(b) return ret, nil // { // "description": "Performs prediction on the data in the request.\nCloud ML Engine implements a custom `predict` verb on top of an HTTP POST\nmethod. \u003cp\u003eFor details of the request and response format, see the **guide\nto the [predict request format](/ml-engine/docs/v1/predict-request)**.",